ヒガサラblog

サラリーマン向けに、仕事を効率良く進めていくための方法についてご紹介しています。プログラミングから対人スキルまでを幅広く掲載中。

ヒガサラblog

【VBA初心者用】マクロ実行中に別シートに移動する4つの方法!

f:id:yshgs_elec:20201119225303j:plain

この記事では、VBA実行中に別のシートに移動する方法をご紹介します。

 

ひとくくりにシートを移動すると言っても、

①シート名を指定して移動する

②先頭のシートから*個目のシートに移動する

③一番最後のシートに移動する

④今いるシートの隣のシートに移動する

というようにパターンは様々です。

 

というわけでこの記事では、これら4つのパターンでのシートの移動方法について解説していきます。

 

状況に応じて使い分けることができれば非常に便利ですので、ぜひすべてのやり方をマスターしておきましょう。

 

 

それではさっそくやっていきます!

 

はじめに

まず始めにあなたの知りたいことと、この記事の内容が一致していているかを確認しておきましょう。

 

今回は以下の画像のように2つのシートがあるエクセルシートを用意しています。

今回はdata001というシートにいる状態で、data002というシートに、様々な方法を使って移動する方法をご紹介します。

f:id:yshgs_elec:20201119221452j:plain



 それでは早速本題に入っていきましょう!

シート名を指定して移動する

 まず始めにシンプルにシート名を指定して移動する方法です。

◆シート名を指定して移動するコード

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シートの結果画像を載せておきます。

きちんとすべてのマクロが動いたことが確認できますね。

f:id:yshgs_elec:20201119224821j:plain

終わりに

というわけで今回は、マクロ実行中に別のシートに移動する方法を4つのパターンに分けてご紹介しました。

ぜひこのスキルをマスターし、日々の業務を効率化していきましょう!

 

このように、このブログでは、エクセル(VBA)を中心に、様々な業務効率化スキルを紹介しています。

■業務の生産性を上げたい。

■早く帰って子供と遊びたい。

こんな人はぜひ他の記事も読んでみてください。

 

また、VBAを使ってこんなことがしたいんだけど、やり方がわからない、という悩みを抱えているかたは、お気軽にコメント欄から質問してください。

私にわかる範囲であればご協力いたしますので。(もちろん無料です。)

 

最後に・・・

この記事が役に立ったという方はぜひ応援よろしくお願いします。

 ↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

にほんブログ村 IT技術ブログへ
にほんブログ村

 

Twitterもやっていますので、興味があれば覗いてみてください。

それではまた!!

 

 オススメ記事

www.higashisalary.com

www.higashisalary.com