連続して「ファイル」保存!! | VBAびより

VBAびより

こんにちわ!VBAびよりの、春っちです!
春っち流VBAをマスターすれば、秒で仕事を終わらせるVBAを作れるように、きっとなります!
(初めての方は1記事目から読んでいただくことをオススメします。)
どうぞよろしくお願いします!!

こんにちわ!VBAびよりの、春っちです!

 

今回は、「名前を付けて保存」を繰り返し行ってみようと思います!

 
前回は、ワークシート(3)(左から3番目のシート)に「名前を付けて保存」をしました。
 
今回は、
 
ワークシート(1) → 名前を付けて保存
ワークシート(2) → 名前を付けて保存
ワークシート(3) → 名前を付けて保存
 
連続で各ワークシートをファイル保存をしていきます。
 
※ファイル名は、分かりやすいように全て「シート名」で保存していきます。
 
ワークシートを沢山作った時に、複数のシートを1つ1つ手操作で保存していくのは結構手間のかかる作業ですよね・・・
 
そんな時、連続して自動でファイル保存ができると便利かと思います。
 

【書き方】

前回「ファイル保存」をした際のコードを、「For文」を使ったコードに変更します。
(「For文」については以前書かせて頂きました。)

赤字箇所を変更し、このように書きました。

(↓長いので文字サイズXSにしています)

-----------------------------------

Sub 各シートをファイル保存()
Dim a As Long
Dim SaveDir As String

SaveDir = ThisWorkbook.Path & "\" & "注文書" & "(" & Format(Now, "yyyymmdd") & ")"

If Dir(SaveDir, vbDirectory) = "" Then
MkDir SaveDir
End If

For a = 1 To Sheets.Count
Worksheets(a).Copy

ActiveWorkbook.SaveAs Filename:=SaveDir & "\" & Sheets(a).Name & ".xlsx", Password:="1234"
ActiveWorkbook.Close

Next a


End Sub

-----------------------------------

↑この文は毎回コピペして使えます☆(適宜書き換えて下さい。)

 

 

【詳しく説明しますと、、、】

-----------------------------------

Dim a As Long
Dim SaveDir As String

 

→ 「For文」に必ず使うカウンタ変数(回数を数える変数)を使います。

(変数の名前は、「a」と名づけ、冒頭に宣言します。)

 

SaveDir = ThisWorkbook.Path & "\" & "注文書" & "(" & Format(Now, "yyyymmdd") & ")"
If Dir(SaveDir, vbDirectory) = "" Then
MkDir SaveDir
End If
 

 

→ フォルダを作成(以前書かせていただきました。)

 

For a = 1 To Sheets.Count

→ ワークシート(1) から全てのシート数まで繰り返す。

(例えば、ワークシート(2) からワークシート(3) まで保存したい場合は、下線の部分を「2 to 3」と数字で書いたりもできます。)


Worksheets(a).Copy

ActiveWorkbook.SaveAs Filename:=SaveDir & "\" & Sheets(a).Name & ".xlsx", Password:="1234"
ActiveWorkbook.Close
→ 「ワークシートを指定するカウンタ変数(a)」を入れて使います。

Next a

→ 全てのシート数まで繰り返します。

-----------------------------------

 
 
沢山のファイル保存も、「For文」を使って、自動で繰り返し作業にすれば、楽になる作業かな~、と思っています。

 

最後までご覧いただきありがとうございました★☆★

 

 

【今日のpickup】~買ってよかった!春っちのお気に入り商品~

 

 

(ただ水を飲む。だけでもマインドフルネスできるみたいです。)

 

 

1記事目はコチラからどうぞ↓