ExcelマクロVBA入門 | 第74回.ファイルを開くダイアログ(GetOpenFilename) | Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説



最終更新日:2013-05-15

第74回.ファイルを開くダイアログ(GetOpenFilename)



開くファイル名を取得するために、[ファイルを開く] ダイアログ ボックスを表示します。


GetOpenFilenameメソッド


Applicationオブジェクトのメソッドになります。



Application.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)

FileFilter ファイルの候補を指定する文字列 (ファイル フィルター文字列) を指定します。
FilterIndex 引数 FileFilter で指定したファイル フィルター文字列の中で、1 から何番目の値を既定値とするかを指定します。この引数を省略するか、ファイル フィルター文字列の数より大きい数値を指定すると、最初のファイル フィルター文字列が既定値となります。
Title ダイアログ ボックスのタイトルを指定します。この引数を省略すると "ファイルを開く" になります。
ButtonText Macintosh でのみ指定できます。
MultiSelect True を指定すると、複数のファイルを選択できます。False を指定すると、1 つのファイルしか選択できません。既定値は False です。


戻り値


バリアント型 (Variant)


選択したファイルがフルパスでも戻ります。


ファイルを選択しなかった場合は、Falseが戻ります。



引数のほとんどは、説明文を読めば理解できると思いますが、


FileFilterの、指定文字列について説明が必要です。


FileFilter


ファイル フィルター文字列とワイルドカードのペアを、必要な数だけ指定します。

ファイル フィルター文字列とワイルドカードはコンマ (,) で区切り、各ペアもコンマで区切って指定します。

各ペアは、[ファイルの種類] ボックスのリストに表示されます。

1 つのファイル フィルター文字列に複数のワイルドカードを対応させるには、各ワイルドカードをセミコロン (;) で区切ります。


文章では理解しづらいでしょう、以下の使用例を参考にして下さい。



使用例.


Application.GetOpenFilename(FileFilter:="Excel2003以前,*.xls,Excelファイル,*.xlsx,Excelマクロブック,*.xlsm")


Excelファイルの拡張子として、xls,xlsx,xlsmの3つを指定しています。



Application.GetOpenFilename(FileFilter:="Excelファイル,*.xls*,CSVファイル,*.csv")


エクセルファイルとして、拡張子が xls , xlsx , xlsm を全て指定するために、xls* としています。


まだ、2番目のフィルターとして、CSVファィルを指定しています。



実践例.

Sub sample1()
  Dim FileName As Variant
  FileName = Application.GetOpenFilename(FileFilter:="Excelファイル,*.xls*")
  If FileName = False Then
    Exit Sub
  End If
  Workbooks.Open FileName
End Sub


ダイアログでエクセルファイルを指定し、そのエクセルファイルを開いています。

Sub Sample2()
  Dim FileName As Variant
  FileName = Application.GetOpenFilename(FileFilter:="Excelファイル,*.xls*", _
                        MultiSelect:=True)
  If Not IsArray(FileName) Then
    Exit Sub
  End If
  Dim i As Long
  Dim wb As Workbook
  For i = LBound(FileName) To UBound(FileName)
    Set wb = Workbooks.Open(FileName(i))
    ・・・
    wb.Close SaveChanges:=False
  Next i
End Sub


複数のエクセルファイルを指定して、順次処理しています。


MultiSelect:=True では、配列処理が必要になります、配列については後々説明します。



・初期フォルダーの指定


ダイアログで初期表示されるフォルダは、カレンドフォルダです。


これを変更する場合は、


ChDir フォルダ


これを事前に実行するようにします。






同じテーマ「ExcelマクロVBA入門」の記事

第75回.名前を付けて保存ダイアログ(GetSaveAsFilename)
第76回.ファイルダイアログ(FileDialog)
第77回.組み込みダイアログ(Dialogs,xlDialogPrint)
第78回.総合練習問題8
第79回.ファイル操作T(Dir)
第80回.ファイル操作T(その他)
第81回.総合練習問題9

新着記事 ・・・新着記事一覧を見る

Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)
数式の参照しているセルを取得する|ExcelマクロVBAサンプル集(3月18日)
CSVの読み込み方法(改の改)|ExcelマクロVBAサンプル集(3月17日)
変数とプロシージャーの命名について|ExcelマクロVBA技術解説(2月12日)
ファイルの一覧取得・削除(File)|Google Apps Script入門(1月24日)
フォルダの一覧取得・作成・削除(Folder)|Google Apps Script入門(1月24日)
フォルダとファイルを扱う(DriveApp)|Google Apps Script入門(1月24日)
スプレッドシートが非常に遅い、高速化するには|Google Apps Script入門(1月17日)
画像のトリミング(PictureFormat,Crop)|ExcelマクロVBAサンプル集(12月27日)
シート保護|Google Apps Script入門(12月24日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
6.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
7.変数とデータ型(Dim)|ExcelマクロVBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.CSVの読み込み方法|ExcelマクロVBAサンプル集
10.VBAのFindメソッドの使い方には注意が必要です|ExcelマクロVBA技術解説



  • >
  • >
  • >
  • ファイルを開くダイアログ(GetOpenFilename)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。

    ↑ PAGE TOP