複数のエクセルファイルを順番に開く
Excel2003、OS WindowsXPを使用し、Visual Basicに関する質問です。
下記マクロを作成したのですが、これですとファイルを複数選択した場合に毎回開く順番がランダムになってしまいます。これをファイル名を参照して順番に開くようにしたいのです。
因みにファイル名は **-***_AAA_日付.xls です。
*には数字が入り、AAAには漢字による名称が入ります。
例)(1)24-002、(2)24-005、(3)24-008といった3つのファイルを開くとします。現在ですと(3)→(1)→(2)のような順番で開きますが、これを(1)→(2)→(3)のようにファイル名の数字をkeyとして順番に開きたいのです。
色々と調べてみたのですが、よく分かりませんでした…。
すみませんが、ご回答の程、宜しくお願い致します。
Opf = ThisWorkbook.Path & "\注文書・請書"
ChDrive ThisWorkbook.Path
ChDir Opf
'ファイルを開くダイアログを開く
vntFileName = _
Application.GetOpenFileName( _
FileFilter:="エクセルファイル(*.xls),*.xls" _
, FilterIndex:=1 _
, Title:="ファイル選択" _
, MultiSelect:=True _
)
'ファイルが選択されているとき(vntFileNameが配列型)は
'選択した全てのファイルをWorkbooks.Openメソッドを使い開く
If IsArray(vntFileName) Then
For Each vntGetFileName In vntFileName
Workbooks.Open vntGetFileName
Next
Else
Exit Sub
End If
お礼
参考意見ありがとうございます。 >「book3」を閉じる前に、「book1」で作業していた場合は >アクティブになるのは「book1」です。 説明が足りませんでしたが、「book3」を閉じる前に作業して いたのは「book2」です。(実際には“作業”はしておらず、 全ファイルを順番に開いただけ。) >「重ねて表示」にしていると次に上に表示されているファイルが >アクティブになります。 (1)book1、(2)book2、(3)book3 と開いて、「重ねて表示」を 行なうと、「book3」の下(裏)に「book1」となります。 「book2」は最小化されています。