忍者ブログ
バイオインフォマティックス技術者試験、情報処理試験など、IT系の試験を基礎から勉強します。また、Javaなどプログラミングを勉強します。

【VBAスタンダード対策】MkDir ステートメントによるフォルダ作成処理を攻略!

VBAで新しいフォルダ(ディレクトリ)を自動生成する際に使用するのが MkDir ステートメント です。指定方法の記述ルールや、すでにフォルダが存在する場合の挙動などの重要な注意点をマスターしましょう。

1. 問題:MkDir ステートメントによるフォルダ作成

【 問題 】 C:\Data フォルダの中に、Backup という名称の新しいフォルダを作成したい。空欄 ( A ) に入る正しい記述はどれでしょうか?

Sub CreateFolderTest()
    Dim folderPath As String
    folderPath = "C:\Data\Backup"

    ( A )
End Sub

① CreateFolder folderPath
② MkDir folderPath
③ MkDir(folderPath)
④ Application.MakeDirectory folderPath

2. 正解:MkDir ステートメントの記述に関する正解

正解: ② MkDir folderPath

3. 解説:MkDir ステートメントの構文とエラー回避のポイント

指定したパスに新しいフォルダを作成するには MkDir ステートメント(Make Directoryの略)を使用します。

[ MkDir の構文構造と注意ルール ]

構文:MkDir 作成したいフォルダのパス

1. 記述のルール(ステートメント):
MkDir は関数ではなくステートメント(命令文)のため、引数をカッコ ( ) で囲まず、MkDir folderPath のように空白を空けてパスを指定します。

2. 誤り(①, ③, ④)の理由:
・①(CreateFolder): CreateFolder は FileSystemObject (FSO) のメソッドであり、標準VBAステートメントではありません。
・③(MkDir(folderPath)): 単一の引数を戻り値なしで呼び出す際にカッコをつける記述はVBAの構文違反となります。
・④(Application.MakeDirectory): Application オブジェクトにこのようなメソッドは存在しません。

3. 実務・試験での超重要注意点(同名フォルダの存在):
作成しようとするフォルダがすでに存在する場合、実行時エラー75(「パス名またはファイル名が正しくありません。」)が発生してプログラムが停止します。実務では Dir(folderPath, vbDirectory) 等で事前チェックを行うのが定石です。

ここが試験に出る!: スタンダード試験では、フォルダを作成する MkDir と、フォルダを削除する RmDir の名称の対応や、すでにフォルダが存在する場合のエラー判定問題がよく出題されます。


4. まとめ

「フォルダの作成は MkDir フォルダパス 」。このステートメントを押さえておけば、当日の日付名がついたフォルダ(例: C:\Data\20260814)を自動作成してレポートを格納するような実務マクロも簡単に組めるようになります。


PR