ExcelとVBAでプロジェクトフォルダを一瞬で初期化するマクロ【環境変数対応】

プロジェクトごとにフォルダ構成を作る作業、地味に手間がかかりませんか?
(私は機械設計を生業としているので、プロジェクトといっても機械設計プロジェクトになります)

今回は、ExcelとVBAを使って「アクティブセルに入力した名前でプロジェクトフォルダを一瞬で初期化するマクロ」を紹介します。
作成されるフォルダは以下の構成です:

%PROJECTS%/work/プロジェクト名/
├── src/
├── archive/
└── README.md

環境変数 %PROJECTS% を使っているので、作業環境に依存しない柔軟な設計になっています。


目次

VBAコード

以下のコードを標準モジュールに貼り付けてください:

Sub InitializeProjectFolder()
    Dim folderName As String
    Dim baseFolderPath As String
    Dim projectFolderPath As String
    Dim srcFolderPath As String
    Dim archiveFolderPath As String
    Dim readmePath As String
    Dim fso As Object
    Dim wshShell As Object
    
    ' アクティブセルからフォルダ名取得
    folderName = Trim(ActiveCell.Value)
    
    If folderName = "" Then
        MsgBox "アクティブセルが空です。フォルダ名を入力してください。"
        Exit Sub
    End If
    
    ' 環境変数 %PROJECTS% を取得
    Set wshShell = CreateObject("WScript.Shell")
    baseFolderPath = wshShell.ExpandEnvironmentStrings("%PROJECTS%")
    
    If baseFolderPath = "%PROJECTS%" Then
        MsgBox "環境変数 PROJECTS が設定されていません。"
        Exit Sub
    End If
    
    ' フォルダパス定義
    projectFolderPath = baseFolderPath & "\work\" & folderName
    srcFolderPath = projectFolderPath & "\src"
    archiveFolderPath = projectFolderPath & "\archive"
    readmePath = projectFolderPath & "\README.md"
    
    ' FSOオブジェクト
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    ' プロジェクトフォルダ作成
    If Not fso.FolderExists(projectFolderPath) Then
        fso.CreateFolder projectFolderPath
    End If
    
    ' srcフォルダ作成
    If Not fso.FolderExists(srcFolderPath) Then
        fso.CreateFolder srcFolderPath
    End If
    
    ' archiveフォルダ作成
    If Not fso.FolderExists(archiveFolderPath) Then
        fso.CreateFolder archiveFolderPath
    End If
    
    ' README.md作成
    If Not fso.FileExists(readmePath) Then
        Dim readmeFile As Object
        Set readmeFile = fso.CreateTextFile(readmePath, True)
        readmeFile.WriteLine "# " & folderName
        readmeFile.Close
    End If
    
    ' フォルダをエクスプローラで開く
    Shell "explorer.exe """ & projectFolderPath & """", vbNormalFocus
    
    MsgBox "プロジェクトフォルダを初期化しました:" & projectFolderPath
End Sub

準備

上記スクリプトをファイルの標準モジュールとして保存しておく。

開発タブ ー>Visual Basic

使い方

Excelの任意セルに「プロジェクト名」を入力。
マクロを実行。
瞬時に以下のフォルダ構成が完成します:

%PROJECTS%/work/プロジェクト名/
├── src/
├── archive/
└── README.md

フォルダがエクスプローラーで自動的に開きます。


工夫ポイント

  • 環境変数 %PROJECTS% を使うことで、PCごとのフォルダパス違いに強くなっています。
  • README.mdも自動生成されるので、プロジェクトの初期ドキュメントも即座に用意できます。
  • src(作業用)、archive(履歴用)の基本構成を標準化し、迷わず作業に入れます。

応用アイデア

  • src内に「images」「draft」などサブフォルダも自動生成する
  • README.mdにテンプレートを書き込む
  • ボタン1つで作成できるExcel UI化

まとめ

プロジェクト開始時のフォルダ準備、たった1クリックで終わらせませんか?

「VBA×環境変数」の組み合わせは、業務効率化において非常に強力な武器になります。
ぜひ試してみてください!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次