大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、深い階層のフォルダを作成するには、階層ごとにMkDirを使って、フォルダを作成していく必要があります。イメージ図を交えながら、具体的に解説していきます。VBAでのフォルダ操作をマスターしていきましょう。

はじめに

この記事では、深い階層のフォルダを作成する方法について、ご紹介します。

深い階層のフォルダを作成するには、階層ごとにフォルダを作成する必要があります。

やり方としては、

  • ①フォルダパスを分割
  • ②階層ごとにフォルダパスを作成
  • ③フォルダがない場合フォルダを作成
  • ④ ①~③を繰り返す

という感じでできます。

VBAでのフォルダ操作に慣れていきましょう。

では、深い階層のフォルダを作成する方法について、解説していきます。

この記事を読むメリット

  • 深い階層のフォルダを作成する方法がわかります

目次から見たい項目へ移動すると便利ですよ。

目次

フォルダを作成する

まずは、フォルダを作成してます。

「MkDir」を使う

フォルダを作成するには、「MkDir」を使います。

1つ目の階層の場合は、簡単です。

次のようになります。

Sub TEST1()
    
    'フォルダを作成する
    MkDir "C:\Users\User\Desktop\TEST\1"
    
End Sub

新規のフォルダを作成してみます。

フォルダを作成してみる

新規のフォルダを作成してみます

実行すると、フォルダを作成することができます。

フォルダを作成できた

フォルダを作成することができました

フォルダを作成することができました。

深い階層のフォルダを作成する

深い階層のフォルダを作成するには、階層ごとにフォルダを作成する必要があります。

フォルダがないとエラーになる

深い階層を一度に作成しようとすると、フォルダがないので、エラーになります。

Sub TEST2()
    
    '深い階層のフォルダを作成 ⇒エラーになる
    MkDir "C:\Users\User\Desktop\TEST\1\2\3"
    
End Sub

深い階層のフォルダを作成すると、エラーとなります。

深い階層のフォルダは作成できない

深い階層のフォルダを作成すると、エラーとなります

実行してみます。

深い階層のフォルダを作成するとエラー

深い階層のフォルダは、一括で作成できないので、エラーとなります

深い階層のフォルダは、一括で作成できないので、エラーとなりました。

階層ごとにフォルダを作成する必要がある

階層ごとにフォルダを作成する必要があります。

こんな感じで、階層ごとにフォルダを作成する必要があります。

Sub TEST3()
    
    '階層ごとにフォルダを作成する
    MkDir "C:\Users\User\Desktop\TEST\1" '「1」のフォルダを作成
    MkDir "C:\Users\User\Desktop\TEST\1\2" '「2」のフォルダを作成
    MkDir "C:\Users\User\Desktop\TEST\1\2\3" '「3」のフォルダを作成
    
End Sub

階層ごとに深い階層までのフォルダを作成してみます。

深い階層までフォルダを作成してみる

階層ごとに深い階層までのフォルダを作成してみます

実行すると、深い階層までのフォルダを作成できます。

深い階層までフォルダを作成できた

深い階層までのフォルダを作成できました

深い階層までのフォルダを作成できました。

ただ、このままでは応用がきかないので、深い階層のフォルダ作成を自動化してみます。

VBAで階層ごとにフォルダを作成

階層ごとにフォルダを作成するVBAコードです。

Sub TEST4()
    
    Dim A
    '「\」ごとに、分割する
    A = Split("C:\Users\User\Desktop\TEST\1\2\3", "\")
    
    Dim B, C
    '分割したフォルダをループ
    For i = 0 To UBound(A)
        B = A '分割したフォルダを入力
        '配列の大きさを変更する
        ReDim Preserve B(i)
        '配列を結合してフォルダパスを作成
        C = Join(B, "\")
        'フォルダパスが存在しない場合
        If Dir(C, vbDirectory) = "" Then
            'フォルダを作成する
            MkDir C
        End If
    Next
    
End Sub

手順は、次のようになります。

  • ①フォルダパスを分割
  • ②階層ごとにフォルダパスを作成
  • ③フォルダがない場合フォルダを作成
  • ④ ①~③を繰り返す

イメージをみてみます。

「\」でフォルダパスを分割

最初に、「\」でフォルダパスを分割します。

「\」でフォルダパスを分割します

「Split」を使えば、簡単に分割することができます。

フォルダパスを作成してフォルダを作成

次に、「Redim Preserve」で配列の大きさを変更して、「\」区切りで結合します。

これで、最初の階層からのフォルダパスを作成できます。

フォルダがない場合に、フォルダを作成していきます。

1つ目の階層です。

「Redim Preserve」で配列の大きさを変更して、「\」区切りで結合したあと、フォルダがない場合にフォルダを作成します

同じようにフォルダパスを作成して、フォルダがない場合、フォルダを作成していきます。

深い階層までループする

2つ目の階層です。

同じようにフォルダパスを作成して、フォルダがない場合、フォルダを作成していきます

3つ目の階層です。

同じようにフォルダパスを作成して、フォルダがない場合、フォルダを作成していきます

同じように繰り返していきます。

同じようにフォルダパスを作成して、フォルダがない場合、フォルダを作成していきます

最後の階層です。

同じようにフォルダパスを作成して、フォルダがない場合、フォルダを作成していきます

これで、深い階層のフォルダを作成することができます。

結果をみてみます。

深い層階のフォルダを作成できた

実行すると、深い階層のフォルダを作成することができます

深い階層のフォルダを作成することができました。

こんな感じで、深い階層のフォルダを作成したい場合は、階層ごとにフォルダを作成していきます。

おわりに

この記事では、深い階層のフォルダを作成する方法について、ご紹介しました。

深い階層のフォルダを作成するには、階層ごとにフォルダを作成する必要があります。

やり方としては、

  • ①フォルダパスを分割
  • ②階層ごとにフォルダパスを作成
  • ③フォルダがない場合フォルダを作成
  • ④ ①~③を繰り返す

という感じでできます。

VBAでのフォルダ操作に慣れていきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す