この記事では、VBA実行中に別のシートに移動する方法をご紹介します。
ひとくくりにシートを移動すると言っても、
①シート名を指定して移動する
②先頭のシートから*個目のシートに移動する
③一番最後のシートに移動する
④今いるシートの隣のシートに移動する
というようにパターンは様々です。
というわけでこの記事では、これら4つのパターンでのシートの移動方法について解説していきます。
状況に応じて使い分けることができれば非常に便利ですので、ぜひすべてのやり方をマスターしておきましょう。
それではさっそくやっていきます!
はじめに
まず始めにあなたの知りたいことと、この記事の内容が一致していているかを確認しておきましょう。
今回は以下の画像のように2つのシートがあるエクセルシートを用意しています。
今回はdata001というシートにいる状態で、data002というシートに、様々な方法を使って移動する方法をご紹介します。
それでは早速本題に入っていきましょう!
シート名を指定して移動する
まず始めにシンプルにシート名を指定して移動する方法です。
Sheets(“シート名”).Activate
◆実際の使用例
Sub sheet_change1()
Sheets("data002").Activate
Cells(1, 1) = "HELLO"
End Sub
今回はdata002シートに移動したいので、直接シート名を記入しています。
ここは特に問題ないでしょう。
※【”】でシート名を挟むことをお忘れなく。
先頭のシートから*個目のシートに移動する
Sheets(先頭からの数字).Activate
◆実際の使用例
Sub sheet_change2()
Sheets(2).Activate
Cells(2, 1) = "HELLO"
End Sub
今回は移動したいシート(data002)は先頭から2番目にあるので、Sheets(2)と記入します。
先頭に移動したい場合はSheets(1)、5番目のシートに移動したい場合はSheets(5)と記入します。
ここは変数を使用することもできます。
i=2
Sheet( i ). Activate
としても同じことができます。
一番最後のシートに移動する
Sheets(Worksheets.Count).Activate
◆実際の使用例
Sub sheet_change3()
Sheets(Worksheets.Count).Activate
Cells(3, 1) = "HELLO"
End Sub
このスキルは移動したいシートが一番後ろにあることがわかっている状態のときに使うものです。
Worksheets.Countでシートの数を数えることが出来ますので、このスキルと、二番目に紹介した指定した番数のシートに移動するスキルを組み合わせているだけです。
隣のシートに移動する
Sheets(ActiveSheet.Index ±1 ).Activate
◆実際の使用例
Sub sheet_change4()
Sheets(ActiveSheet.Index + 1).Activate
Cells(4, 1) = "HELLO"
End Sub
このスキルは移動したいシートが今いるシートの隣にあることがわかっているときに使うものです。
ActiveShees.Indexで今いるシートが先頭から何番目にあるのかを数えることが出来ます。数字にプラス1すれば、ひとつ後ろのシート、マイナス1すればひとつ前のシートの番数を計算することができます。
このスキルと、二番目に紹介した指定した番数のシートに移動するスキルを組み合わせているだけです。
というわけで、以上がマクロ実行中にシートを移動する方法でした。
念のため今回紹介したマクロをすべて実行したときのdata002シートの結果画像を載せておきます。
きちんとすべてのマクロが動いたことが確認できますね。
おわりに
というわけで今回は、マクロ実行中に別のシートに移動する方法を4つのパターンに分けてご紹介しました。
ぜひこのスキルをマスターし、日々の業務を効率化していきましょう!
このように、このブログでは、エクセル(VBA)を中心に、様々な業務効率化スキルを紹介しています。
■業務の生産性を上げたい。
■早く帰って子供と遊びたい。
こんな人はぜひ他の記事も読んでみてください。
また、VBAを使ってこんなことがしたいんだけど、やり方がわからない、という悩みを抱えているかたは、お気軽にコメント欄から質問してください。
私にわかる範囲であればご協力いたしますので。(もちろん無料です。)
最後に・・・
この記事が役に立ったという方はぜひ応援よろしくお願いします。
↓ 応援ボタン
Twitterもやっていますので、興味があれば覗いてみてください。
それではまた!!
コメント