シートに予め入力されたデータをフォルダ名にして、フォルダを自動作成する方法を紹介します。
また、作成したフォルダの中にブックをコピーして保存する方法を紹介します。
完成イメージ
ワークシートにフォルダ名とするデータを用意しておきます。(今回はアルファベットを入力しています)
フォルダの中にブックをコピーして保存します。(今回はブック名をフォルダ名と同じアルファベットにしています)
コード
Sub フォルダ生成()
Dim i As Long
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
MkDir ThisWorkbook.Path & "\" & Cells(i, 1)
Next i
End Sub
'MkDir フォルダパス
MkDir関数でフォルダを作成できます。
コピーを保存
Sub コピーを保存()
Dim i As Long
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\" & Cells(i, 1) & "\" & Cells(i, 1) & ".xlsx" '同じフォルダ内のフォルダにコピーして保存
Next i
End Sub
ファイルの保存方法(コピーを保存を含む)についてはこちらの記事で紹介しています。↓
ExcelVBAでのファイル保存
VBAにおけるファイルの保存方法についてまとめてみました。同じファイル名があった場合に名前に連番を付けて保存する方法も紹介しています。
まとめ
フォルダの作成方法とファイルを指定フォルダに自動的に保存(コピーして保存)する方法を紹介しました。
次回は、FileSystemObjectを使ってフォルダ・ファイルへ自動的に連番付与する方法を紹介します。
FileSystemObjectで自動連番付与設定
FileSystemObject(ファイルシステムオブジェクト)の基本的な使い方とFileSystemObject(ファイルシステムオブジェクト)を使って、フォルダとファイルに自動連番付与する方法を紹介します。
- FileSystemObjectで自動連番付与設定
- フォルダ自動作成とファイル保存(コピーを保存)
- ユーザーフォームを使ったレコード抽出方法-基本-
- ユーザーフォームとコンボボックスの値の取得
- VBAユーザーフォームとコンボボックス
コメント