【VBA】セルの値を使用してフォルダを作る

VBA

この記事では、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関数でフォルダを新たに作成します。