この記事では、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 String
:mainFolderPath
とsubFolderPath
という名前の文字列変数を宣言しています。これらの変数には、作成するメインフォルダとサブフォルダのパスを格納します。If Dir(mainFolderPath, vbDirectory) = "" Then
:Dir
関数を用いて、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
処理の流れ
For
ループを用いて、1から5までの数字を順に処理します。- 各ループで
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キーを押下すると練習を始められます。
※推奨ブラウザ Google Chrome