ExcelVBA技 全般 E13M020

E13M020 (Excel2000~2013)
複数のファイルを選択するダイアログボックスを表示する

[ファイル]-[開く]コマンドで複数のファイルを開く事が出来ますが、ファイルは開かずファイル名のみ取得したい場合があります。 GetOpenFilenameメソッドを用いるとダイアログボックスでファイル名のみ取得出来ます。 複数のファイルを選択する[ファイルを開く]ダイアログボックスを扱うサンプルを示します。

ショートカットをGetOpenFilenameメソッドで指定すると、そのショートカットファイル名ではなくリンク先のフルパス名が取得されます。

'複数のファイルを選択する[ファイルを開く]ダイアログボックスを表示
'指定した複数ファイル名を取得します。ファイルは実際には開かれません。
Sub example_e13m020() 'GetOpenFilename MultiSelectの例
  Dim file As Variant, filter$, title$, ss$, ii&
  filter = "テキスト ファイル (*.txt),*.txt,Excel ファイル (*.xl*),*.xl*,すべてのファイル (*.*),*.*"
  title = "" '省略値は"ファイルを開く"
  file = Application.GetOpenFilename(filter, , title, , True)
  If VarType(file) = vbBoolean Then Exit Sub '[キャンセル]された
  '選択ファイルをMsgBoxで表示
  For ii = 1 To UBound(file)
    ss = ss & ii & ") " & file(ii) & vbCrLf
  Next
  MsgBox ss, , UBound(file) & "個のファイルが選択されました"
End Sub