このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】GetOpenFilenameの使い方を解説

2024年1月21日

【VBA】GetOpenFilenameの使い方を解説

今回はGetOpenFilenameメソッドを使う方法を紹介します。

このメソッドは上の画像のようにファイルダイアログを表示して、ユーザーにファイルを選択させるものになります。

そして選択されたファイルのフルパスを返します。

VBAが難しいと感じたら
ココナラにてマクロ(VBA)の作成代行を始めました。
ご依頼はこちらから

GetOpenFilenameの使い方

Sub SelectFile()
    '''GetOpenFilenameメソッドでファイルを選択する
    
    Dim filePath As Variant
    filePath = Application.GetOpenFilename()
    
    If filePath <> False Then
        MsgBox "あなたが選んだファイルのパスは" & filePath & "です"
    Else
        MsgBox "ファイルが選ばれませんでした"
    End If
End Sub

サンプルコードを実行するとファイルダイアログが表示されてファイルの選択を求められます。

そして選択すると選んだファイルのフルパスが表示されます。

ファイルを選択しなかった場合は「ファイルが選ばれませんでした」のメッセージが表示されます。

GetOpenFilenameの返り値

この関数はファイル選択した場合はフルパスを返すのですが、キャンセルした場合にはFalseを返します。

そのため、返り値を受け取る変数はVariant型を使用しましょう。

キャンセルされた場合はFalseとなるのでサンプルコードのようにIf文を書いておいて、キャンセルされた場合はExit Subなどで処理を終了させることをおすすめします。

デフォルトで開くフォルダの変え方

GetOpenFilenameで最初に表示されるフォルダは、カレントディレクトリです。

そのため、デフォルトで表示されるフォルダを変えるには、先にカレントディレクトリを変更する必要があります。

ChDir "フォルダのパス"

GetOpenFilenameを実行すると前に、ChDir関数でカレントディレクトリを変更しましょう。

カレントディレクトリを変更した後に、GetOpenFilenameを実行すればデフォルトで開くフォルダを指定することができます。

※ただし、カレントディレクトリは自分のPC内しか指定できないので、ファイルサーバーのフォルダをカレントディレクトリとすることはできません。

複数ファイルを選択したい場合

GetOpenFilenameを使うとユーザーに複数ファイルを選択させることもできます。

その場合は返り値の扱い方が変わるため詳しくはこちらの関連記事をご覧ください。

VBAが難しいと感じたら
ココナラにてマクロ(VBA)の作成代行を始めました。
ご依頼はこちらから

VBA

Posted by やろまい