プロジェクトごとにフォルダ構成を作る作業、地味に手間がかかりませんか?
(私は機械設計を生業としているので、プロジェクトといっても機械設計プロジェクトになります)
今回は、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×環境変数」の組み合わせは、業務効率化において非常に強力な武器になります。
ぜひ試してみてください!