ワークシートに対してのいろいろな操作操作を紹介します!
シートの操作
新しいワークシートを挿入する
Addメソッド
新しいシートを挿入するには、WorksheetsコレクションのAddメソッドを実行します。
実行すると、アクティブシートの左側に新しいワークシートが挿入されます。
Sub sample()
'新しいシートを挿入する
Worksheets.Add
End Sub
挿入する場所を指定したい場合
Addメソッドには、BefoeとAfterの2つの引数が用意されています。
この引数を指定することで、シートを挿入する位置を指定出来ます。
<”Sheet2”の左側に挿入したい場合>
左側はBeforeです。シートの名前を指定してあげます。
Sub sample()
'新しいシートを挿入する
Worksheets.Add Before:=Sheets("Sheet2")
End Sub
<一番後ろの位置に挿入したい場合>
現在の一番後ろのシートは、シートの番号で指定します。
Sheets.Countでワークブックに何枚シートがあるかを数えられますのでその特性を活かします。
Afterは右側に挿入なので、一番後ろのシートの右側に挿入と言う意味になります。
Sub sample()
'新しいシートを一番後ろに挿入する
Worksheets.Add After:=Sheets(Sheets.Count)
End Sub
挿入したシートを変数に格納する
新しく挿入したシートには、その後なんらかの処理を加えると思います。
作成したときに、同時に変数に格納してしまうと後で便利です。
Sub sample()
'挿入したシートを格納する変数を用意する
Dim NewSheet As Worksheet
'新しいシートを挿入して、変数に格納する
Set NewSheet = Worksheets.Add
’イミディエイトウィンドウにシート名を出力する
Debug.Print NewSheet.Name
End Sub
ちなみに、Addメソッドなど引数を指定した場合で、直接変数に格納する時は、引数を()で囲ってください。
Sub sample()
'挿入したシートを格納する変数を用意する
Dim NewSheet As Worksheet
'新しいシートを挿入して、変数に格納する
Set NewSheet = Worksheets.Add(After:=Sheets(Sheets.Count))
’イミディエイトウィンドウにシート名を出力する
Debug.Print NewSheet.Name
End Sub
シート名を変更する
シート名を変更するには、WorksheetオブジェクトのNameプロパティを設定します。
以下のコードで、ここまでの一連の流れを一気にやりましょう!
Sub sample()
'挿入したシートを格納する変数を用意する
Dim NewSheet As Worksheet
'新しいシートを挿入して、変数に格納する
Set NewSheet = Worksheets.Add
'シートの名前を変更する
NewSheet.Name = "新シート"
’イミディエイトウィンドウにシート名を出力する
Debug.Print NewSheet.Name
End Sub
※既に存在する名前や、シート名に指定出来ない文字列を指定するとエラーになるので注意してください!
シートの挿入と同時に名前を設定する
新しいシートの挿入と同時に名前を設定することも出来ます。
Sub sample()
'新しいシートを挿入して名前を付ける
Worksheets.Add.Name = "新シート"
End Sub
シートを削除する
シートを削除するには、Deleteメソッドを使います。
次はアクティブシートを削除するコードです。
Sub sample()
ActiveSheet.Delete
End Sub
動画でも分かるように、単純に削除のコードだけだと「本当に削除しますか」の確認が毎回出てしまいますので、次確認が必要ない場面では、
Application.DisplayAlerts=False
を指定します。
これは、確認メッセージを出さずに実行させる命令です。
通常はTrueが設定されています。
VBAでFalseに設定するとプログラムが終了した後も、設定が残ってしまい様々なメッセージが表示されなくなってしまいますので、シート削除の処理が終わったらTrueに戻すことを忘れないでください、
Sub sample()
Application.DisplayAlerts=False
ActiveSheet.Delete
Application.DisplayAlerts=True
End Sub
シートをコピーする
シートをコピーするにはCopyメソッドをを使います。
新しいワークシートを挿入するときと同じように、BeforeとAfterの引数の指定でコピーしたシートを挿入する場所が設定出来ます。
Sub sample()
'挿入したシートを格納する変数を用意する
Dim NewSheet As Worksheet
'シートをコピーして一番後ろに挿入す変数に格納する
Set NewSheet = Worksheets.Add(After:=Sheets(Sheets.Count))
'シートの名前を変更する
NewSheet.Name = "新シート"
’イミディエイトウィンドウにシート名を出力する
Debug.Print NewSheet.Name
End Sub
シートを移動する
そんなに需要ないかもしれないですが、移動も出来ます。
これも、BeforeとAfterの引数で移動場所を指定します。
アクティブシートを一番後ろに移動します。
Sub sample()
ActiveSheet.Move After:=Sheets(Sheets.Count)
End Sub
シートの表示・非表示を切り替える
シートの表示非表示はWorksheetオブジェクトのVisibleプロパティで設定します。
設定値 | 意味 |
---|---|
True | 表示 |
False | 非表示 |
xlSheetVeryHidden | 非表示(ワークシート上で手動で表示できない) |
TrueとFalseは通常のワークシートで設定するのと同じですが、 xlSheetVeryHiddenを設定するとワークシート上で手動で戻すことが出来ません。
システム上使っているだけのシートなどこれで設定しておくと、ユーザーが触れないのでいいと思います(^o^)
Sub sample()
Dim sht As Worksheet
Set sht = ActiveSheet
'通常非表示
sht.Visible = False
'xlSheetVeryHidden
sht.Visible = xlSheetVeryHidden
'表示
sht.Visible = True
End Sub
シートの保護
シートの保護の操作は以下です。
シートを保護する
※引数のパスワードは省略可です。
Sub sample()
Dim sht As Worksheet
Set sht = ActiveSheet
'シートを保護
sht.Protect Password:="0000"
End Sub
シートの保護を解除する
※引数のパスワードは、保護にパスワードがかかっている場合は指定します。パスワードがかかっているのに指定しなかった場合は、パスワードを入力するポップアップが表示されます。
Sub sample()
Dim sht As Worksheet
Set sht = ActiveSheet
'シートを保護
sht.Protect Password:="0000"
'シートを保護を解除
sht.Unprotect Password:="0000"
End Sub
コメント