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

【VBA】GetOpenFilenameの使い方を解説

2024年11月16日

【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上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

created by Rinker
技術評論社
¥3,608 (2024/12/03 20:42:15時点 Amazon調べ-詳細)
VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい