Public Sub createFolderForMkDir()
Dim createFolderPath As String ' 作成フォルダパス
' 作成フォルダパスの設定
createFolderPath = "C:\vba-hack\TestFolder"
' ファイル作成
MkDir createFolderPath
End Sub
フォルダを作成する(CreateFolderメソッド)
サンプルコード
Public Sub createFolderForFSO()
Dim fso As New FileSystemObject ' FileSystemObjectインスタンス
Dim createFolderPath As String ' 作成フォルダパス
' 作成フォルダパスの設定
createFolderPath = "C:\vba-hack\TestFolder"
' ファイル作成
fso.CreateFolder (createFolderPath)
End Sub
当日の日付のフォルダを作成する
サンプルコード
Public Sub createFolderForToday()
Dim fso As New FileSystemObject ' FileSystemObjectインスタンス
Dim createFolderPath As String ' フォルダ作成パス
Dim todayFolderName As String ' 当日日付
' 当日日付(フォルダ名)取得
todayFolderName = Format(Date, "yyyymmdd")
' 作成フォルダパスの設定
createFolderPath = "C:\vba-hack\" & todayFolderName
' フォルダの存在チェック
If Not fso.FolderExists(createFolderPath) Then
' 日付フォルダが存在しない場合
' フォルダ作成
fso.CreateFolder (createFolderPath)
End If
End Sub
共通化のサンプルコード
呼び出し – メインプロシージャ
サンプルコード
Public Sub createFolder()
Dim createFolderPath As String ' フォルダ作成パス
' フォルダ作成パスを設定
createFolderPath = "C:\vba-hack\"
' フォルダの作成
Call createFolderForToday(createFolderPath)
End Sub
当日の日付のフォルダを作成 – サブプロシージャ
サンプルコード
Public Sub createFolderForToday(ByVal createFolderPath As String)
Dim fso As New FileSystemObject ' FileSystemObjectインスタンス
Dim todayFolderName As String ' 当日日付
' 当日日付(フォルダ名)取得
todayFolderName = Format(Date, "yyyymmdd")
' 作成フォルダパスの設定
createFolderPath = createFolderPath & todayFolderName
' フォルダの存在チェック
If Not fso.FolderExists(createFolderPath) Then
' 日付フォルダが存在しない場合
' フォルダ作成
fso.createFolder (createFolderPath)
End If
End Sub
めい
フォルダを作成したいフォルダパスを渡すと当日日付のフォルダを作成するロジックです。
セルに入力されたフォルダ名を一括で作成する
サンプルコード
Public Sub createFolderForCellValue()
Dim fso As New FileSystemObject ' FileSystemObjectインスタンス
Dim createFolderPath As String ' フォルダ作成パス
Dim folderNameArr As Variant ' 作成フォルダ名 配列
Dim folderName As Variant ' 作成フォルダ名
' カレントディレクトリを変更
ChDir "C:\vba-hack"
' 作成するフォルダ名をセルから取得
folderNameArr = Range(Cells(1, 1), Cells(3, 1))
For Each folderName In folderNameArr
' フォルダの存在チェック
If Not fso.FolderExists(folderName) Then
' 日付フォルダが存在しない場合
' フォルダ作成
fso.CreateFolder (folderName)
End If
Next folderName
End Sub
コメント