【VBA】フォルダを作成する|サンプルコード多数

この記事では、ExcelのVBAを用いて、フォルダを作成する方法について詳細に解説します。プログラミング初心者から中級者まで、誰でも簡単にフォルダを作成できるようになることを目指します。

目次

MkDirステートメントの基本

MkDirステートメントとは何か

MkDir(Make Directory)ステートメントは、VBAで新しいフォルダを作成するための命令です。この命令は非常にシンプルで、基本的な構文は以下のようになります。

MkDir [フォルダ名]

この一行のコードで、指定した名前の新しいフォルダが作成されます。

実用的な使用例

フォルダの場所を指定する方法

[フォルダ名]の部分には、作成するフォルダの場所(パス)を指定できます。場所を指定しない場合、Excelが現在開いている(カレント)フォルダに新しいフォルダが作成されます。

例えば、Dドライブに「MyNewFolder」という名前のフォルダを作成する場合、以下のようなコードになります。

Sub CreateMyNewFolder()
    MkDir "D:\MyNewFolder"
End Sub

このコードを実行すると、Dドライブのルートディレクトリに「MyNewFolder」という名前の新しいフォルダが作成されます。

フォルダが存在しない場合にフォルダ作成

以下のサンプルコードでは、指定したフォルダが存在しない場合に、フォルダを作成し、その中にさらにサブフォルダを作成します。

Sub CreateFolderWithSubfolder()
    Dim mainFolderPath As String, subFolderPath As String
    mainFolderPath = "D:\MainFolder"
    subFolderPath = "D:\MainFolder\SubFolder"
    
    If Dir(mainFolderPath, vbDirectory) = "" Then
        MkDir mainFolderPath
    End If
    
    If Dir(subFolderPath, vbDirectory) = "" Then
        MkDir subFolderPath
    End If
End Sub

コードの詳細な解説

  • Dim mainFolderPath As String, subFolderPath As StringmainFolderPathsubFolderPathという名前の文字列変数を宣言しています。これらの変数には、作成するメインフォルダとサブフォルダのパスを格納します。
  • If Dir(mainFolderPath, vbDirectory) = "" ThenDir関数を用いて、mainFolderPathで指定したパスにメインフォルダが存在するか確認しています。存在しない場合は、MkDir関数でフォルダを作成します。
  • If Dir(subFolderPath, vbDirectory) = "" Then:同様に、subFolderPathで指定したパスにサブフォルダが存在するか確認し、存在しない場合には新たに作成します。

複数のフォルダを一度に作成

Sub CreateMultipleFolders()
    Dim i As Integer
    For i = 1 To 5
        MkDir "D:\Folder" & i
    Next i
End Sub

処理の流れ

  1. Forループを用いて、1から5までの数字を順に処理します。
  2. 各ループでMkDir関数を用いて、”Folder1″、”Folder2″、…、”Folder5″という名前の新しいフォルダを作成します。

VBAでフォルダ作成に関するFAQ

Q:MkDir関数で作成できるフォルダの階層はどれくらいですか?

A:MkDir関数は一度に一つのフォルダしか作成できません。したがって、複数階層のフォルダを一度に作成することはできません。親フォルダが存在する場合にのみ、その中にサブフォルダを作成することができます。

Q:既存のフォルダがある場合、MkDir関数でエラーが出ますか?

A:はい、既存のフォルダと同じ名前のフォルダをMkDir関数で作成しようとすると、実行時エラーが発生します。このような場合は、Dir関数を使用して既存のフォルダの有無を確認することが推奨されます。

Q:特定の場所にフォルダを作成するにはどうすればいいですか?

A:MkDir関数の引数に、作成したいフォルダのフルパスを指定します。例えば、Cドライブに”NewFolder”という名前のフォルダを作成する場合、MkDir "C:\NewFolder"と指定します。

Q:フォルダ名に日本語を使用できますか?

A:はい、フォルダ名に日本語を使用することは可能です。ただし、使用する文字によってはエラーが発生する可能性がありますので、事前にテストすることをお勧めします。

Q:MkDir関数以外でフォルダを作成する方法はありますか?

A:はい、FileSystemObjectを使用する方法もあります。この方法は、より高度なファイル操作が可能ですが、Microsoft Scripting Runtimeライブラリへの参照設定が必要です。

Q:MkDir関数で作成したフォルダはすぐに使用できますか?

A:はい、MkDir関数で作成したフォルダは、関数が正常に実行された直後から使用することができます。

Q:MkDir関数で作成したフォルダのパーミッションはどうなりますか?

A:MkDir関数で作成したフォルダのパーミッションは、作成元のフォルダやドライブのパーミッション設定に依存します。特定のパーミッションを設定するには、別途OSレベルでの操作が必要です。

Q:MkDir関数でフォルダを作成した後、そのフォルダを削除する方法は?

A:フォルダを削除するには、RmDir関数を使用します。この関数もMkDir関数と同様に、削除するフォルダのパスを引数として指定します。

関連動画

まとめ

この記事で、Excel VBAを使用してフォルダを作成する方法について、基本的な概念から実用的な使用例、各設定項目の詳細な解説までを行いました。これで、あなたもVBAを使って効率的なファイル管理ができるようになるでしょう。何か疑問点や不明点があれば、ぜひ質問してください。

Excelのショートカットキーの練習

当サイトはショートカットキーの練習を実際の動きを確認しながら練習できる機能がついています。繰り返し指を動かして練習ができるので、ゲーム感覚で遊んでいくうちに自然とショートカットキーが使えるようになれます。ショートカットキーは暗記するよりも実際に手を動かして練習していったほうが習得が早くなるので、是非当サイトをブックマークに登録し定期的に練習してみてください。下記のSTARTキーを押下すると練習を始められます。

下のスタートボタンを押して練習モードに入ります。
STARTSTOP
※入力モード切り替え ctrl + shift + alt + space
PRE
NEXT
現在の問題をリストから除外
除外したリストをリセット
現在の除外状況のURL取得
コピー
ガイドモード
リピートモード

※推奨ブラウザ Google Chrome

PUSH ENTER
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次