見出し画像

【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日目

いいなと思ったら応援しよう!