VBAでフォルダ内のサブフォルダを含めて全て開いて、PCウィンドウの最前面に表示する方法を紹介します。
・サブフォルダをPCウィンドウの最前面の表示
上記について、コード解説もしていきます。
目次
エクセルに入力されたフォルダパスのサブフォルダを開く
この事例では、エクセルのB2で指定したフォルダパスに含まれるサブフォルダを開いて、最前面に表示します。
ここではエクセルのB2にフォルダパスを入力していますが、VBAプログラムのなかに入力しておいても問題ありません。
VBAで指定したフォルダ内のサブフォルダを開いて最前面に表示
今回紹介するプログラムの以下です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
'プログラム0|変数設定の指定 Option Explicit 'プログラムA-1|プログラム開始 Sub Main() 'プログラムA-2|シート設定 Dim ws As Worksheet Set ws = Worksheets("Sheet1") 'プログラムA-3|フォルダ指定 Dim folderpath As String folderpath = ws.Range("B2").Value 'プログラムA-4|プログラムBを呼び出す Call OpenSubFolders(folderpath) 'プログラムA-5|プログラム終了 End Sub 'プログラムB-1|サブプログラム開始 Sub OpenSubFolders(path) 'プログラムB-2|フォルダを開く(最前面に表示) '通常サイズ Shell "C:\Windows\Explorer.exe " & path, vbNormalFocus '最大サイズ 'Shell "C:\Windows\Explorer.exe " & folderpath, vbMaximizedFocus 'プログラムB-3|FileSystemObjectの設定 Dim fs As Scripting.FileSystemObject Set fs = New Scripting.FileSystemObject 'プログラムB-4|フォルダを取得 Dim basefolder As Scripting.Folder Set basefolder = fs.GetFolder(path) 'プログラムB-5|フォルダ内のフォルダを取得 Dim myfolders As Scripting.Folders Set myfolders = basefolder.SubFolders Dim myfolder As Scripting.Folder For Each myfolder In myfolders 'プログラムB-6|再帰的にプログラムBを呼び出す Call OpenSubFolders(myfolder.path) Next 'プログラムB-7|オブジェクト解放 Set myfolder = Nothing Set myfolders = Nothing Set basefolder = Nothing Set fs = Nothing 'プログラムB-8|プログラム終了 End Sub |
上記のプログラムは以下のページで紹介したVBAプログラムを組み合わせています。
以下のページで詳しい解説をしています。
プログラムの解説が欲しい方は上記のページをご覧ください。
Excel VBAについて詳しく理解したいなら
VBAを活用すると、仕事を効率化できる幅を広げることができます。
たとえば私が実際にVBAを活用して効率化してきた作業は以下の記事で紹介しています。
興味がある人は以下の記事もご覧ください。
動画でも解説しています。
エクセルマクロVBAで出来ることを15の事例で紹介|日常業務をラクにするヒントを見つけよう!
(音声が小さいので、ボリュームを上げてご覧いただければと思います)
VBAでフォルダ操作する事例
VBAでフォルダを操作する事例について、以下で紹介しています。
本サイトで紹介しているVBAプログラムと解説ページ
内容としては、以下について紹介しています。
マクロVBAでセルの値(エクセル)で同じ階層に複数フォルダ一括作成
VBAで複数フォルダを階層別に一括作成|エクセルマクロ×フォルダ操作
VBAでフォルダ内のファイル名を取得!再帰的に階層別にサブフォルダも対象にしてエクセルへ一覧を出力
VBAでフォルダ内のファイル名とサブフォルダを取得し一覧化|拡張子も出力する方法
VBAでサブフォルダ含めフォルダ名とファイル名をテキストファイル出力
VBA×ファイル操作|フォルダ名とファイル名をテキストファイルへ出力
VBAでフォルダ内のフォルダ名・ファイル名を一括変更(まとめて変換)
VBAでShellを使ってフォルダを開く|最前面に表示(アクティブ化)
VBAでダイアログからフォルダ選択し複数ファイル名を取得・表示|エクセルに一覧化
VBAでフォルダ内のエクセルファイルを全てに処理するマクロを紹介
VBAでフォルダ内の全てのエクセルデータを一つにまとめる(集約)
エクセルVBA×Text|テキストファイルの文字列を一斉置換・変換
VBAでフォルダ内のファイル数とフォルダ数をカウントしてExcelに出力
VBAでフォルダ内のファイルや特定フォルダ(ファイルごと)一括削除
VBAで複数フォルダのセットを一括コピー(フォルダの名前変更も実行)
エクセルVBAで請求書PDF作成|複数の取引先別に自動転記(マクロテンプレートあり)
エクセルマクロVBAで資料送付状(Word)の作成・印刷を効率化
VBAでWord議事録メモを作成して最前面表示!ファイルコピーと一覧化で整理整頓
エクセルファイルをダウンロードしてそのままVBAを使えるようにしているので、ぜひご活用ください。