Excel VBA フォルダを複数一括新規作成する手抜きマクロ 個人用マクロブックに組み込めるよ

Excel カスタマイズ

スポンサーリンク

はじめに

ご存じない方も多いと思うが、Excelのマクロ・VBAでは、ファイルのコピー、フォルダの新規作成などといった、ファイルやフォルダの操作もできる。

今回はExcel VBAで、Excelの選択セル範囲からフォルダを複数新規作成できるマクロを紹介する。

普通こんな、複数フォルダを新規作成するなんて機能になると、専用のフリーソフト等をダウンロードして使ったり、Excel VBAを使うにせよそれ専用のExcelブックを作ったりするものだ。
しかし、いちいちそれらのフリーソフトやExcelブックを起動するのが面倒だ。

そこで今回は、同マクロを個人用マクロブックの中に組み込んで、日常使っているExcelの中から簡単に呼び出せるようにしてみた。
下記にソースコードを示すけど、どれだけ手を抜いて短いソースにできるかにチャレンジしてみた。

個人用マクロブックとかについては、ここを展開。

オリジナルのマクロをリボンに追加する方法はこちら

個人用マクロブックについては、こちらこちらで述べています。

 

最後にある「appSet」「appReset」というのが、私のオリジナルのやつで、こちらを参照。
これを除いた「Sub makeNewFolders」が、今回の実質的なマクロだ。

Excel 個人用マクロブック(Personal.xlsb) 最初に必ず入れておく高速化用コード

マクロの使い方

このマクロの使い方は簡単。下図のようにExcelのセル範囲内に、新しく作成したいフォルダ名を列記し、選択しておく。

図の例ではC3セルが空白になっているけどこれはわざとで、こういったエラーに該当するセルがあっても、それはスルーするようにしている。
ソースコード中の「On Error Resume Next」の部分ね。

そして、このセル範囲を選択してからマクロを起動すれば、フォルダを選択するダイアログが出てくる。

サブフォルダを新規作成したいフォルダを、このダイアログから選んで「OK」を押せば、そのフォルダ内に先程セル範囲で指定した複数のフォルダが新規作成される。

ソースコードの解説

今回のソースコードで
Application.FileDialog(msoFileDialogFolderPicker)
というやつが、フォルダを選ぶダイアログを呼び出すもの。

このApplication.FileDialog というやつには、全部で下記4つの類型がある。

名称機能
msoFileDialogFolderPickerフォルダを選択する
msoFileDialogFilePickerファイルを選択する
→「開く」のではなく「選択する」だけ
msoFileDialogOpenファイルを開く
→Excelで「開く」わけなので、「Excelで開く」ことができないならエラーになる。
「選択」するというmsoFileDialogFilePickerとの、微妙な違い。
msoFileDialogSaveAsファイルを保存する

そしてこれらダイアログについては、何も選択せず「キャンセル」ボタンを押されたときの処理を必ず書いておかなければならない。

そのためには、ダイアログの「.Show」がFalseになるということを記述するわけだが、そのために「=False」なんて面倒な書き方はしない。

「If Not .Show Then」というように、「Not」を使って簡潔に書く。
こういう手短な書き方については別記事でも触れている。

Excel VBA 処理実行前にチェックを通すソースコードの記入方法例

そして、フォルダを新規作成するコマンドが「MkDir」だ。

Dirというのがファイルに関して幅広く取り扱うコマンドで、MkというのはMakeの略だから、フォルダを新規作成するということね。

スポンサーリンク