Excelで、選択中のセルに表示されているパス内の末端フォルダーを作成するマクロを作りたい。ただし、その末端のフォルダーの親よりも上にある全ての階層はすでに存在していることが前提となる。作ってみたら、期待通りに動作した。
Excelで、選択中のセルに表示されているパス内の末端フォルダーを作成するマクロを作りたい。
本当は複数の階層のフォルダーを一気に作成されるようにしたかったが、それは少し難しいようなので、今回は諦めた。
(想定する動作の例)
Excel のB1セルに、”\localhostC$temptest1″ と表示されているとする。このセルを選択しているときにそのマクロを実行すると、そのPCの中に \localhostC$temptest1 が実際に作成される。ただし、その末端のフォルダーの親よりも上にある全ての階層(\localhostC$temp)はすでに存在していることが前提となる。
Microsoft Excel for Microsoft 365 MSO (バージョン 2205 ビルド 16.0.15225.20172) 64 ビット
・VBEに新たな標準モジュールを作成
・以下のようなコードを書いた。
Public Sub MakeFolder()
‘変数の宣言
Dim TargetFolder As String‘選択しているセルから値を取得。その値はフォルダーパスであることが前提。
TargetFolder = Selection‘もし上記のパスが無ければ、そのパスの通りにフォルダーを作る。
If Dir(TargetFolder, vbDirectory) = “” Then
MkDir TargetFolder
End IfEnd Sub
・マクロによって作成されるフォルダーを包含する親フォルダーまで(以下)は、予め手動とかで作っておく。
\localhostC$temp
(つまり、C:temp)
・Excel上で、作りたいパスが表示されているセルを選択しておく。
・Alt+F8のマクロ一覧から今回作ったマクロ”MakeFolder”を実行したら、期待通り、選択中のセルに書かれたパスの末端フォルダーが新規作成された。