LoginSignup
1
3

More than 5 years have passed since last update.

【VBA】シートの扱い【基本】

Last updated at Posted at 2016-12-16

シートを変数に代入

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にすることができる。

1
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3