【Day59】文系オタクのエンジニア道~シート操作⑨-2~
こんにちは
安田です
本来は明日8/31(土)のアップ予定ですが
ライランの最終日だったので
一日前倒しでアップします
VBA学習、2週目!
(なんとか 継続できてる…)
シートを開く
シートを開く(アクティブシートの切り替え)ときは
Selectメソッドまたは
Activateメソッドを使います
Sheets("Sheet1").Select
Sheets("Sheet1").Activate
一緒ですやん
と思ったあなた
僕も思いました
厳密に言うと
Select:指定したシートを「選択する」命令
Activate:指定したシートを「アクティブシートにする」命令
と微妙に違いがあります
アクティブシートはExcel上で1枚しか存在していません
上記の画像は
Sheet1とSheet3を選択(Select)している状態で
Sheet1がアクティブシートになります
コードは下記
Sub test()
Sheets(Array("sheet1", "Sheet3")).Select
Sheets("Sheet1").Activate
End Sub
シートをコピー、移動する
シートをコピーするとき
Copyメソッド
シートを移動するとき
Moveメソッド
どちらも
「After」「Before」という
引数が用意されています
コピー元のシート Copy After,Before
移動元のシート Move After,Before
「After」「Before」は同時に使用することは不可です
「After」の引数は
指定したシートの”後ろ(右)”に
シートがコピーまたは移動がされます
Sub test()
Sheets("Sheet1").Copy after:=Sheets("sheet2")
End Sub
「Before」の引数は
指定したシートの”手前(左)”に
シートがコピーまたは移動がされます
Sub test()
Sheets("Sheet1").Copy Before:=Sheets("sheet2")
End Sub
シートを挿入する
ブック内に新しいシートを挿入
Addメソッドを使う
Sub test2()
Sheets.Add
End Sub
引数「After」「Before」は
所定の位置に挿入できます
いずれも指定しないと
アクティブシートの左に挿入されます
引数「Count」に数値を指定すると
指定した枚数のシートが挿入されます
シートを表示、非表示にする
シートを非表示にするには
Visibleプロパティに「False」を指定します
非表示から表示にするには「True」を指定します
Sub test3()
Sheets("sheet1").Visible = False
End Sub
注意
すべてのシートを非表示にすることはできません
この状態から
Sub test3()
Sheets("sheet2").Visible = False
End Sub
シート2を非表示にすると
エラーになります
まとめ
シートを増やしたり、非表示にしたり
VBAでやるとカッコよく感じました笑
すべてのシートを非表示にできない
確かに言われてみればそうですね
Excelで当たり前のように作業していると
見落としがちですが
VBAで学ぶと新しい視点で
物事を見れるので楽しいです
第9章はまだまだあるので
お付き合いください
最後まで読んでいただき
ありがとうございます
安田
#66日ライラン
ライラン 65日目