#SelectFalse
Explore tagged Tumblr posts
kotaexcel · 6 years ago
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
Tumblr media
流れとしては
シートをグループとしてセレクト
→コピーして保存
→コピーしたものを閉じる
という感じです。
グループとしてセレクトするには、
シート.Select False
というようにします。こうすることで、セレクト状態を解除せずに次のシートもセレクトすることができます。
そしてこれらのシートはActiveWindow.SelectedSheetsで扱えます。
たしか配列形式で保存されていたかと思いますが、コピーうまくいくんですね(うまくいかないかなと思いながら実行したらうまくいったパターン)。
このままマクロを終了すると複数シートが選択されている状態になっているので、最後にSheet1を選択しています。
ちなみに、今回はシートだけを保存していて、マクロは引き継がれていないので、ファイル��形式は.xlsx(マクロが保存できない形式)にしておきます。
このマクロをワークシートにボタンとして張り付けておきます。
Tumblr media
これでシートの自動作成、自動削除、自動コピーが実装できました。
次回から細かな調整をしていく予定です。
0 notes