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

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

SUMIFの間違いによるパフォーマンスの低下について|エクセル関数超技(6月17日)
条件式のいろいろな書き方:TrueとFalseの判定とは|ExcelマクロVBA技術解説(6月15日)
空白セルを正しく判定する方法2|ExcelマクロVBA技術解説(5月6日)
フルパスをディレクトリ、ファイル名、拡張子に分ける|ExcelマクロVBA技術解説(4月15日)
テキストボックスの各種イベント|Excelユーザーフォーム入門(4月9日)
フォルダ(サブフォルダも全て)削除する、Optionでファイルのみ削除|ExcelマクロVBAサンプル集(4月4日)
最後の空白(や指定文字)以降の文字を取り出す|エクセル関数超技(3月26日)
先頭の数値、最後の数値を取り出す|エクセル関数超技(3月26日)
Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)
数式の参照しているセルを取得する|ExcelマクロVBAサンプル集(3月18日)

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

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
4.変数とデータ型(Dim)|ExcelマクロVBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
6.定数と型宣言文字(Const)|ExcelマクロVBA入門
7.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
8.マクロって何?VBAって何?|ExcelマクロVBA入門
9.CSVの読み込み方法|ExcelマクロVBAサンプル集
10.ひらがな⇔カタカナの変換|エクセル基本操作



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

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


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

    ↑ PAGE TOP