MENU

指定場所に指定フォルダを新規作成する方法

目次

指定場所に指定フォルダを新規作成する方法

絶対パスで指定した場所に「000」というフォルダを新規作成します。
既に同名フォルダがある場合は「エラーが発生しました」と表示されます。

Private Sub ボタン名_Click()
On Error GoTo ErrExit
    MkDir "絶対パス\000"
Exit Sub
ErrExit:
    MsgBox "エラーが発生しました。" & Err.Description
End Sub

もう1つ結果が同じになるやり方です。
既に同名ファイルがある場合は「既に作成済です」と表示されます。

Private Sub ボタン名_Click()
'作成するフォルダ名を000とする
str_dir_name = "000"
保存先 = "フォルダの絶対パス" & "\" & str_dir_name & "\"
'フォルダの存在確認
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FolderExists(保存先)) Then
MsgBox "既に作成済です"
Exit Sub
End If

'フォルダ作成
MkDir (保存先)
End Sub

作成するフォルダ名を指定のフィールドから持ってきたい場合は以下のように記載します。
ここでは「人名」というテキストボックスに表示されている名称がフォルダ名になります。

Private Sub ボタン名_Click()
'作成するフォルダ名をフィールド名にする
str_dir_name = Me.人名
保存先 = "フォルダの絶対パス" & "\" & str_dir_name & "\"
'フォルダの存在確認
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FolderExists(保存先)) Then
MsgBox "既に作成済です"
Exit Sub
End If

'フォルダ作成
MkDir (保存先)
End sub

結果は同じですが、以下のような記述でも可能でした。

Private Sub ボタン名_Click()
'作成するフォルダ名をテキストボックス名にする
保存先 = "フォルダの絶対パス" & Me.人名 & "\"
'フォルダの存在確認
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FolderExists(保存先)) Then
MsgBox "作成済です。"
Exit Sub
End If

'フォルダ作成
MkDir (保存先)
End Sub

項目を作らず自動的に現時点での日時を取得させるには、以下のコード。
これで「日時+フィールド」が組み込まれたフォルダを自動作成できる。

Private Sub ボタン名_Click()
'作成するフォルダ名をテキストボックス名にする
保存先 = "絶対パス\" & Format(Now(), "yyyymmddhhnnss_") & Me.人名 & "\"
'フォルダの存在確認
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

If (fso.FolderExists(保存先)) Then
MsgBox "作成済です。"
Exit Sub
End If

'フォルダ作成
MkDir (保存先)
End Sub

でもこれだと秒ごとにフォルダ名が変わるため、作成ボタンを押すたびにフォルダが延々と作成されてしまいます。
秒単位より「yyyymmdd(年月日)」や「hhnn(時刻)」で留めておいた方が無難かも。

広告

目次