HOME >このページ
Dialog ボックスを表示する方法


@FileDialog オブジェクトについて

ファイルを開いたり保存するダイアログ ボックスを提供します。FileDialog オブジェクトには、次の 4 つの種類があります。

  • [ファイルを開く] ダイアログ ボックス - 1 つ以上のファイルを選択し、Execute メソッドを使用して、そのファイルを開くことができます。
  • [名前を付けて保存] ダイアログ ボックス - 1 つのファイルを選択し、Execute メソッドを使用して、そのファイルを保存することができます。
  • [参照] ダイアログ ボックス (ファイル参照) - 1 つ以上のファイルを選択し、選択したファイルのパスが FileDialogSelectedItems コレクションに与えられます。
  • [参照] ダイアログ ボックス (フォルダ参照) - 1 つのパスを選択し、選択したパスが FileDialogSelectedItems コレクションに与えられます。
(注)Access 2003の場合はMicrosoft Office 11.0 Object Library への参照設定
    Access 2002の場合はMicrosoft Office 10.0 Object Library への参照設定
が必要です。

AFileDialog オブジェクトの作成方法

FileDialog オブジェクトを作成するには、FileDialog プロパティを使用します。このプロパティは、DialogType のみを引数とし、取得する FileDialog オブジェクトの種類を指定します。
ダイアログ 定数
[参照] ダイアログ ボックス(ファイル参照) msoFileDialogFilePicker
[参照] ダイアログ ボックス (フォルダ参照) msoFileDialogFolderPicker
ファイルを開く] ダイアログ ボックス msoFileDialogOpen
[名前を付けて保存] ダイアログ ボックス msoFileDialogSaveAs
FileDialog オブジェクトを作成するには次のようにコードを記述します。([参照] ダイアログ ボックス)
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)

Bダイアログ ボックスの表示方法

ダイアログ ボックスを表示するためには、Show メソッドを使用ます。ダイアログ ボックスを表示し、アクション ボタン (-1) とキャンセル ボタン (0) のどちらがクリックされたかを示す長整数型 (Long) の値を返します。Show メソッドを呼び出すと、ファイルのダイアログ ボックスが閉じられるまで、コードの実行は中断されます。[ファイルを開く] および [名前を付けて保存] ダイアログ ボックスでは、Show メソッドの直後に Execute メソッドを使用して、ユーザーのアクションを実行します。

Cダイアログボックスのプロパティ
Title 表示されるファイルのダイアログ ボックスのタイトルを設定します。
AllowMultiSelect True を設定すると、ダイアログ ボックスから複数のファイルを選択することができます。このプロパティは、[参照] (フォルダ参照) または [名前を付けて保存] ダイアログ ボックスには何も実行しません。
InitialFileName ダイアログ ボックスに初期表示されるパスやファイル名を設定します。
SelectedItems

FileDialogSelectedItems コレクションを取得します。このコレクションには、FileDialog オブジェクトの Show メソッドによって表示されたファイルのダイアログ ボックスでユーザーが選択したファイルのパスの一覧が保存されています。

Filters FileDialogFilters コレクションを取得します。
FilterIndex ダイアログ ボックスの既定ファイル フィルタを設定します。
InitialView ダイアログ ボックスでのファイルやフォルダの初期表示を表す定数を指定します。
 
msoFileDialogViewDetails
msoFileDialogViewLargeIcons
msoFileDialogViewList
msoFileDialogViewPreview
msoFileDialogViewProperties
msoFileDialogViewSmallIcons
Dサンプルコード

次の使用例は、[参照] ダイアログ ボックスを作成して表示し、選択されたファイルをイミディエイトウインドウに表示します。

Sub Sample()
   '[参照] ダイアログ ボックスの FileDialog オブジェクトを作成します。
    Dim fd As FileDialog
    
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
   '選択した各アイテムのパスを保存す変数を宣言します。
    Dim vrtSelectedItem As Variant
    
    'プロパティの設定
    With fd
        .Title = "サンプルダイアログ(ファイル参照)"
        'フィルターの設定
        .Filters.Clear
        .Filters.Add "テキスト", "*.txt; *.csv"
        .Filters.Add "エクセル", "*.xls"
        .Filters.Add "Access", "*.mdb"
        .Filters.Add "イメージ", "*.gif; *.jpg; *.jpeg"
        .Filters.Add "すべてのファイル", "*.*"
        .FilterIndex = 5
        
        .InitialView = msoFileDialogViewDetails
        .InitialFileName = CurrentProject.Path
        .AllowMultiSelect = True

        '[参照] ダイアログ ボックスを表示します。
        If .Show = -1 Then
            'ユーザーがアクション ボタンをクリックした場合
            For Each vrtSelectedItem In .SelectedItems
                Debug.Print "選択したアイテムのパス : " & vrtSelectedItem
            Next vrtSelectedItem
        Else
           'ユーザーが [キャンセル] をクリックした場合
        End If
    End With

    'オブジェクトの変数に Nothing を設定します。
    Set fd = Nothing

End Sub
【実行結果】
ファイルを適当に選択して[OK]ボタンをクリックすると、選択されたファイルがイミディエイトウインドウに表示されます。

選択したアイテムのパス : D:\Access2003\コード\GINKOU.CSV
選択したアイテムのパス : D:\Access2003\コード\SITEN.CSV
選択したアイテムのパス : D:\Access2003\コード\銀行コード.mdb
選択したアイテムのパス : D:\Access2003\コード\高校コード.mdb
E関数化

参照] ダイアログ ボックス(ファイル参照)
Public Function FDFilePicker()
   '[参照] ダイアログ ボックスの FileDialog オブジェクトを作成します。
    Dim fd As FileDialog
    
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
   '選択した各アイテムのパスを保存す変数を宣言します。
    Dim vrtSelectedItem As Variant
    
    'プロパティの設定
    With fd
        .Title = "サンプルダイアログ(ファイル参照)"
        'フィルターの設定
        .Filters.Clear
        .Filters.Add "テキスト", "*.txt; *.csv"
        .Filters.Add "エクセル", "*.xls"
        .Filters.Add "Access", "*.mdb"
        .Filters.Add "イメージ", "*.gif; *.jpg; *.jpeg"
        .Filters.Add "すべてのファイル", "*.*"
        .FilterIndex = 3
        
        .InitialView = msoFileDialogViewDetails
        .InitialFileName = CurrentProject.Path
        .AllowMultiSelect = False

        '[参照] ダイアログ ボックスを表示します。
        If .Show = -1 Then
            'ユーザーがアクション ボタンをクリックした場合
            For Each vrtSelectedItem In .SelectedItems
                FDFilePicker = vrtSelectedItem
            Next vrtSelectedItem
        Else
           'ユーザーが [キャンセル] をクリックした場合
        End If
    End With

    'オブジェクトの変数に Nothing を設定します。
    Set fd = Nothing

End Function


[使用例]
 DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel9, _
                                   "T_要項請求", FDFilePicker, True
[参照] ダイアログ ボックス(フォルダ参照)
 Public Function FDFolderPicker()
   '[参照] ダイアログ ボックスの FileDialog オブジェクトを作成します。
    Dim fd As FileDialog
    
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
   '選択した各アイテムのパスを保存す変数を宣言します。
    Dim vrtSelectedItem As Variant
    
    'プロパティの設定
    With fd
        .Title = "サンプルダイアログ(フォルダ参照)"
        
        .InitialView = msoFileDialogViewDetails
        .InitialFileName = "D:\"

        '[参照] ダイアログ ボックスを表示します。
        If .Show = -1 Then
            'ユーザーがアクション ボタンをクリックした場合
            For Each vrtSelectedItem In .SelectedItems
                FDFolderPicker = vrtSelectedItem
            Next vrtSelectedItem
        Else
           'ユーザーが [キャンセル] をクリックした場合
        End If
    End With

    'オブジェクトの変数に Nothing を設定します。
    Set fd = Nothing

End Function

ホームページに|前のページに|次のページに

CopyRight(C) 2004 cbcnet. All Rights Reserved