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

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選
...

 

「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説