ユーザーフォーム コンボボックスにファイル一覧表示して開く VBA

ExcelVBA

ユーザーフォームで、コンボボックスにファイル一覧を表示して開く方法をご紹介します。

ぜひお試しください😉

ユーザーフォーム作成

ユーザーフォームを作成します。


 

Excelシート

「Sheet1」にマクロボタンを設置します。


 

以下コードを標準モジュール「Module1」に入力して、
ボタンをクリックしたときに、ユーザーフォームが開くようにします。


Sub ボタン1_Click()
    UserForm1.Show vbModeless
End Sub

 

マクロコードを「Module1」に入力した画面


 

マクロコードを入力

マクロコードを「UserForm1」に入力します。


Option Explicit

Dim myPath As String

Private Sub CommandButton1_Click()

    'サブプロシージャ呼び出し
    Call フォルダパス
    
    'コンボボックスで選択したファイルを開く
    CreateObject("WScript.Shell").Run ("""" & myPath & Me.ComboBox1.Text & """")
    
End Sub

Private Sub UserForm_Initialize()
'ユーザーフォーム立ち上げ時にコンボボックスに表示

Dim strFile As String

    'サブプロシージャ呼び出し
    Call フォルダパス

    'myPathのすべてのファイルを取得
    strFile = Dir(myPath & "\*.*")
    
    '取得したファイルをループ
    Do While strFile <> ""
    
        '見つかったファイル名をコンボボックスに入れる
        ComboBox1.AddItem strFile
        
        '次のファイルを検索
        strFile = Dir
    Loop
    
End Sub

Sub フォルダパス()

    'フォルダパスを指定
    myPath = "C:\Users\admin\test\"

End Sub

 

マクロコードを入力する場所「UserForm1」


 

動作

フォルダ「myPath = “C:\Users\admin\test\”」の中身

サブフォルダには対応していないため、
下図の場合「テスト」フォルダは対象外となります


 

ユーザーフォームを開き、コンボボックスからファイルを1つ選択します。


 

「開く」をクリックします。


 

ファイルを開くことができました!


 

画像ファイル、PDFファイル、テキストファイルなども開くことができます。


 
 
この記事がお役に立ちますと幸いです🍀
 
・【ExcelVBA】ユーザーフォーム作成の事例まとめ
 

【VBAユーザーフォーム】何ができるの?:使用例34選
エクセルのユーザーフォームで、処理を自動化するVBAコードをご紹介します。ぜひお試しください😉

 

[最速入門] ChatGPTに任せる Excelマクロ&VBA 面倒なプログラミングは秒で片づけよう

ChatGPTと対話しながら身につける、新しいVBA入門

Excelマクロ・VBAをAIと一緒にラクに習得したいなら、まず読んでおきたい一冊です!


★★★★★ 4.6 ※ Amazonカスタマーレビューより
マクロ記録とChatGPTを組み合わせた学習法が実践的で、すぐ現場で使える
「過不足のない指示」の出し方を学べ、AIとの対話スキルが身につく
変数・条件分岐・ループなどVBAの基礎もしっかり解説されている