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