ユーザーフォームで、コンボボックスにファイル一覧を表示して開く方法をご紹介します。
ぜひお試しください😉
ユーザーフォーム作成
ユーザーフォームを作成します。
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秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説
リンク