フォルダ フォルダがない場合作成するエラー取得-MkDirステートメント

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

Option Explicit


Function FolderMaking(strPath As String, FolderName As StringAs Boolean
'****************************************
'フォルダ作成(エラー回避)
'****************************************

Dim strErr As String

On Error GoTo ErrEND:

    If Dir(strPath & "\" & FolderName, vbDirectory) = "" Then
        MkDir strPath & "\" & FolderName
        FolderMaking = True
    Else
        MsgBox FolderName & " は作成出来ません。", vbCritical, strPath
        FolderMaking = False
    End If
Exit Function

ErrEND:
strErr = Err.Description

'MsgBox strErr
Debug.Print strErr

FolderMaking = False

End Function


Private Sub test()
Dim a As String, b(20) As String, i As Byte
a = ThisWorkbook.Path

b(1) = "Test"
b(2) = "Test" '同名
b(3) = "Test\"      '使用不可文字
b(4) = "Test/"      '使用不可文字
b(5) = "Test:"      '使用不可文字
b(6) = "Test*"      '使用不可文字
b(7) = "Test?"      '使用不可文字
b(8) = "Test"""     '使用不可文字
b(9) = "Test<"      '使用不可文字
b(10) = "Test>"     '使用不可文字
b(11) = "Test|"     '使用不可文字
b(12) = "\Test"     '使用不可文字
b(13) = "/Test"     '使用不可文字
b(14) = ":Test"     '使用不可文字
b(15) = "*Test"     '使用不可文字
b(16) = "?Test"     '使用不可文字
b(17) = """Test"    '使用不可文字
b(18) = "<Test"     '使用不可文字
b(19) = ">Test"     '使用不可文字
b(20) = "|Test"     '使用不可文字

For i = 1 To 20
    If FolderMaking(a, b(i)) = True Then
        Debug.Print i & ":成功"
    Else
        Debug.Print i & ":失敗"
    End If
Next i

'1: 成功
'2: 失敗
'3: 失敗
'4: 失敗
'5: 失敗'ファイル名または番号が不正です。
'6: 失敗
'7: 失敗
'8: 失敗
'9: 失敗
'10: 失敗
'11: 失敗'ファイル名または番号が不正です。
'12: 失敗
'13: 失敗
'14: 失敗'ファイル名または番号が不正です。
'15: 失敗
'16: 失敗'パスが見つかりません。
'17: 失敗'パスが見つかりません。
'18: 失敗
'19: 失敗'パスが見つかりません。
'20: 失敗'ファイル名または番号が不正です。

End Sub

MkDir ステートメント

新しいフォルダを作成します。

  • 構文

  • MkDir path
  • 引数 path

    は必ず指定します。引数 path には、作成するフォルダ名を示す文字列式を指定します。ドライブ名も含めて指定できます。ドライブ名を省略したときは、現在のドライブに新しいフォルダが作成されます。

関連又は類似

  • ChDir ステートメント

  • 現在のフォルダを変更します。
  • CurDir 関数

  • 指定したドライブの現在のパスを表す値を返します。
  • RmDir ステートメント

  • 既存のフォルダを削除するステートメントです。
  • Kill ステートメント

  • ディスクからファイルを削除します。

 

2000年01月01日|[VBサンプルコード]:[フォルダ]