#SelectFalse
Explore tagged Tumblr posts
Text
シートのコピーのバックアップをとる
前回はワークブックそのままのバックアップをとっていましたが、今回はシートのみの(つまりマクロとかは保存しない)バックアップをとるマクロをざっくりと作っていきます。
さっそくコードから。
Sub copy_sheets()
Application.ScreenUpdating = False
Dim temp As Variant, i As Long, folder_path As String, _ sh_count As Long
folder_path = ThisWorkbook.Path & "/保存フォルダ"
sh_count = Sheets.Count - 4 If sh_count = 0 Then Exit Sub End If
Set temp = Sheets("start").Next temp.Select
For i = 1 To sh_count - 1 Set temp = temp.Next temp.Select False Next
ActiveWindow.SelectedSheets.Copy
ActiveWorkbook.SaveAs Filename:=folder_path & "/売上データ.xlsx"
Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True
Sheets("Sheet1").Select
End Sub
流れとしては
シートをグループとしてセレクト
→コピーして保存
→コピーしたものを閉じる
という感じです。
グループとしてセレクトするには、
シート.Select False
というようにします。こうすることで、セレクト状態を解除せずに次のシートもセレクトすることができます。
そしてこれらのシートはActiveWindow.SelectedSheetsで扱えます。
たしか配列形式で保存されていたかと思いますが、コピーうまくいくんですね(うまくいかないかなと思いながら実行したらうまくいったパターン)。
このままマクロを終了すると複数シートが選択されている状態になっているので、最後にSheet1を選択しています。
ちなみに、今回はシートだけを保存していて、マクロは引き継がれていないので、ファイル��形式は.xlsx(マクロが保存できない形式)にしておきます。
このマクロをワークシートにボタンとして張り付けておきます。
これでシートの自動作成、自動削除、自動コピーが実装できました。
次回から細かな調整をしていく予定です。
0 notes