シートを変数に代入
Dim hogeSheet As Worksheet
Set hogeSheet = ThisWorkbook.Worksheets("シート名")
シートのアクティブ化
ThisWorkbook.Worksheets("アクティブ化したいシート名").Activate
または、
Dim hogeSheet As Worksheet
Set hogeSheet = ThisWorkbook.Worksheets("アクティブ化したいシート名")
hogeSheet.Activate
新規シート作成
Function 新規シート生成(sheetName As String) as WorkSheet
Dim OldSheet As Worksheet
Set OldSheet = ActiveSheet
With Worksheets.Add()
.Name = sheetName
End With
Set 新規シート生成 = ActiveSheet
OldSheet.Activate
End Function
ポイント
Dim OldSheet As Worksheet
Set OldSheet = ActiveSheet
OldSheet.Activate
デフォルトだと新規にシートを追加すると、その追加したシートがアクティブになってしまう。
上記の記述により、このプロシージャを実行する前後でアクティブシートが変わらないようにしている。
シート削除
Sub シート削除(sheetName As String)
Application.DisplayAlerts = False
ThisWorkbook.Worksheets(sheetName).Delete
Application.DisplayAlerts = True
End Sub
デフォルトだとシート削除時にアラートがでるため、Application.DisplayAlerts
を切り替えている。
画面描写OFF
Application.ScreenUpdating = False
'アクティブシートが変わるような処理
'
'
Application.ScreenUpdating = True
デフォルトだとアクティブシートを切り替えるマクロを実行すると、その都度画面描写をするため、実行速度が遅くなってしまし、目がチカチカする。
Application.ScreenUpdating
を切り替えることにより、画面描写をOFFにすることができる。