Excel

【Excel】VBAマクロのファイル選択ダイヤログの初期フォルダをデスクトップ、指定、ネットワークなどにする方法【GetOpenFilename、ChDrive、ChDir】

当サイトでは記事内に広告を含みます。

この記事ではExcelのVBAマクロを使用してファイル選択ダイヤログの初期フォルダをデスクトップ、指定フォルダ、ネットワーク上のフォルダなどに設定する方法について解説していきます。

 

ポイントとしては`GetOpenFilename`、`ChDrive`、`ChDir`を使用することです。

マクロ初心者でもわかりやすいように、変数名をaaaaa変数aaaaaといった名称にしています。そのため、ご活用の際には、適切な英語表記に変更してご活用ください。

それでは詳しく見ていきましょう!

VBAマクロのファイル選択ダイヤログの初期フォルダをデスクトップにする方法

それではまず、デスクトップについて解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub OpenFileFromDesktop()
    Dim aaaaaFileDialogaaaaa As FileDialog
    Set aaaaaFileDialogaaaaa = Application.FileDialog(msoFileDialogOpen)
    
    With aaaaaFileDialogaaaaa
        ' 初期フォルダをデスクトップに設定
        .InitialFileName = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
        .Show
    End With
End Sub

コードのAlt+F8を押し、マクロ選択画面でOpenFileFromDesktop関数を実行します。

このコードでは、`FileDialog`オブジェクトを使用してファイル選択ダイヤログを開きます。

`InitialFileName`プロパティにデスクトップのパスを設定することで、初期フォルダをデスクトップにしています。

このパスは`CreateObject`メソッドと`WScript.Shell`オブジェクトの`SpecialFolders`コレクションを使用して取得しています。

 

VBAマクロのファイル選択ダイヤログの初期フォルダをC直下のrenshuフォルダに指定する方法

続いては、C直下のrenshuフォルダについて解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub OpenFileFromC_Renshu()
    ' Cドライブに移動
    ChDrive "C"
    ' Cドライブのrenshuフォルダを初期フォルダに指定
    ChDir "C:\renshu"
    
    Dim aaaaaFileDialogaaaaa As FileDialog
    Set aaaaaFileDialogaaaaa = Application.FileDialog(msoFileDialogOpen)
    aaaaaFileDialogaaaaa.Show
End Sub

コードのAlt+F8を押し、マクロ選択画面でOpenFileFromC_Renshu関数を実行します。

このステップでは、`ChDrive`メソッドでドライブをCに変更し、`ChDir`メソッドで初期フォルダをCドライブ直下の`renshu`フォルダに指定しています。

その後、`FileDialog`を使用してファイル選択ダイヤログを表示します。

 

VBAマクロのファイル選択ダイヤログの初期フォルダをネットワークのフォルダに指定する方法</続いては、ネットワークのフォルダについて解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub OpenFileFromNetworkFolder()
    ' ネットワークドライブのパスを指定
    Dim aaaaaNetworkFolderPathaaaaa As String
    aaaaaNetworkFolderPathaaaaa = "\\NetworkPath\SharedFolder\"
    
    ' 初期フォルダをネットワークドライブに設定
    Dim aaaaaFileDialogaaaaa As FileDialog
    Set aaaaaFileDialogaaaaa = Application.FileDialog(msoFileDialogOpen)
    
    With aaaaaFileDialogaaaaa
        .InitialFileName = aaaaaNetworkFolderPathaaaaa
        .Show
    End With
End Sub

コードのAlt+F8を押し、マクロ選択画面でOpenFileFromNetworkFolder関数を実行します。

このコードでは、`InitialFileName`プロパティにネットワークドライブのパスを設定しています。

このようにすることで、ファイル選択ダイヤログの初期フォルダをネットワーク上の特定のフォルダに設定することが可能です。

ネットワークパスは環境に合わせて適宜変更してくださいませ。

 

まとめ