788960 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

FileDialog オブジェクトの使い方

Sub Main()

    'ダイアログにて選択した各アイテムのパスを引き渡す
    '変数を宣言します。パスは文字列型 (String) ですが、
    '変数はバリアント型 (Variant) である必要があります。

    Dim SelectedItem As Variant

    Call FilSel(SelectedItem)

    MsgBox "パス名 :  " & SelectedItem

End Sub


'----------------------------------------------------------------------------------------------------------------------------------------


Sub FilSel(SelectedItem As Variant)

'Microsoft Excel2002 VBAヘルプ「FileDialogFilters コレクション」より転載。

    'FileDialog オブジェクトの変数を宣言します。
    Dim fd As FileDialog

    '[参照] ダイアログ ボックスの FileDialog オブジェクトを作成します。
    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    '選択した各アイテムのパスを保存する
    '変数を宣言します。パスは文字列型 (String) ですが、
    '変数はバリアント型 (Variant) である必要があります。Each...Next ルーチンは、
    'バリアント型 (Variant) およびオブジェクト型 (Object) の値でのみ動作します。
    Dim vrtSelectedItem As Variant

    'With...End With ブロックを使用して、FileDialog オブジェクトを参照します。
    With fd

        '[ファイルの種類] ボックスの内容を変更します。
        'FileDialogFilters コレクションをクリアして、一覧を空にします。
        .Filters.Clear

        'すべてのファイルを含むフィルタを追加します。
        .Filters.Add "すべてのファイル", "*.*"

        'GIF および JPEG のイメージを含むフィルタを追加し、一覧の最初の項目に指定します。
        .Filters.Add "イメージ", "*.gif; *.jpg; *.jpeg", 1

        'Show メソッドを使用して [参照] ダイアログ ボックスを表示し、ユーザーのアクションを取得します。
        'ユーザーがアクション ボタンをクリックしました。
        If .Show = -1 Then

            'FileDialogSelectedItems コレクション内のすべての文字列を調べます。
            For Each vrtSelectedItem In .SelectedItems

                'vrtSelectedItem は、選択した各アイテムのパスを含む文字列型 (String) の値です。
                'このパスで使用したいファイルの I/O 関数があれば、使用することができます。

                SelectedItem = vrtSelectedItem

            Next vrtSelectedItem
        'ユーザーが [キャンセル] をクリックしました。
        Else
        End If
    End With

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

End Sub



© Rakuten Group, Inc.