Excelスキルアップコレクション
           〜 Something U Want 〜


Google  

WWW を検索
Excelスキルアップコレクション内 を検索
 @     Top  >     Excel VBA スキルアップコレクション Topics  >     (09) ファイル選択ダイアログを使用する

 
(09) ファイル選択ダイアログを使用する

 GetOpenFilename( ) メソッドを使用することで、『ファイル選択』ダイアログをVBAから利用することができます。『ファイル選択』ダイアログとは以下のようなエクスプローラ風にファイルを選択できる画面のことです。

 下記サンプルコードは、『ファイル選択』ダイアログを使用したサンプルです。

 1行目:  Public Sub get_FileNameDialog()
 2行目:  
 3行目:      ' 選択されたファイル名を取得する変数
 4行目:      Dim fileName As String
 5行目:      
 6行目:      ' ファイル選択ダイアログからファイル名を取得する。
 7行目:      ' 選択されたファイル名は配列で返される。
 8行目:      fileName = Application.GetOpenFilename
 9行目:      
10行目:      ' ファイル選択ダイアログにてファイルを選択されたか否か判別する。
11行目:      If fileName = "False" Then
12行目:          ' キャンセルされた。
13行目:          Exit Sub
14行目:      Else
15行目:          ' 選択されたファイル名をメッセージボックスで表示する。
16行目:          MsgBox fileName
17行目:      End If
18行目:  
19行目:  End Sub
このサンプルコードを実行すると、『ファイル選択』ダイアログが起動します。例えば「スケジュール.xls」を選択すれば、以下のような結果になります。
 『ファイル選択』ダイアログにて、複数ファイルの選択を許容する場合は、GetOpenFilename( ) メソッドの第5引数(MultiSelect)にTrueを指定し、戻り値の受け取り変数の型をVariantにします。戻り値は配列として返されます。

 1行目:  Public Sub get_FileNameDialog2()
 2行目:  
 3行目:      ' 選択されたファイル名を取得する変数
 4行目:      Dim fileName As Variant
 5行目:      
 6行目:      ' 『ファイル選択』ダイアログからファイル名を取得する。
 7行目:      ' 選択されたファイル名は配列で返される。
 8行目:      fileName = Application.GetOpenFilename(, , , , True)
 9行目:      
10行目:      ' 『ファイル選択』ダイアログにてファイルを選択されたか否か判別する。
11行目:      If IsArray(fileName) = False Then
12行目:          ' キャンセルされた。
13行目:          Exit Sub
14行目:      End If
15行目:      
16行目:      ' 選択されたファイル名の一覧をメッセージボックスで表示する。
17行目:      Dim lp As Long
18行目:      For lp = LBound(fileName) To UBound(fileName)
19行目:          MsgBox fileName(lp)
20行目:      Next
21行目:  
22行目:  End Sub
このサンプルコードを実行すると、『ファイル選択』ダイアログが起動して、複数ファイルが選択できるようになります。
ページの先頭へ