この記事では、Excel VBAを使用してセルの値を取得し、その値を使ってフォルダを作成する方法についてご紹介します。
セルの値を使用してフォルダを作る
下図のように、Sheet1のセルB1に日付、セルB2にフォルダパスが入っているとします。
セルB1の日付を使って「20240105」というフォルダをセルB2のフォルダパス内に作ります。
サンプルコード
Sub セルの値を使用してフォルダ作成()
Dim Day As String
Dim SaveDir As String
‘ シートをアクティブにする(Sheet1を使用)
Sheets(“Sheet1”).Activate
‘ セルB1の日付をyyyymmdd形式にする
Day = Format(Range(“B1”), “yyyymmdd”)
‘ 作成するフォルダのパス( C\サンプル\yyyymmdd )
SaveDir = Range(“B2”) & “\” & Day
‘ フォルダがなければ作る
If Dir(SaveDir, vbDirectory) = “” Then
MkDir SaveDir
End If
End Sub
下図のようにフォルダが作成されます。
解説
それでは、このコードの詳細を解説していきますね。
ステップ1: シートをアクティブにする
Sheets(“Sheet1”).Activate
この行は、VBAが実行される際にSheet1をアクティブにするためのものです。
このサンプルではSheet1を使用していますが、必要に応じてシート名を変更してください。
ステップ2: 日付の取得と整形
Day = Format(Range(“B1”), “yyyymmdd”)
この行では、セルB1の日付を「yyyymmdd」形式に整形して変数Dayに格納しています。
これにより、後でフォルダ名として使用できる形式に変換されました。
ステップ3: フォルダのパスを構築
SaveDir = Range(“B2”) & “\” & Day
ここでは、フォルダを保存するディレクトリのパスを構築しています。
セルB2の C\サンプル に \ と 変数Dayに格納した日付を結合し
C\サンプル\yyyymmdd を構築しています。
ステップ4: フォルダが存在しなければ作成
If Dir(SaveDir, vbDirectory) = “” Then
MkDir SaveDir
End If
最後に、指定されたパスにフォルダが存在しない場合に、そのフォルダを作成します。
Dir関数を使用してパスが存在するかどうかを確認し、存在しなければMkDir関数でフォルダを新たに作成します。