Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAで次のグラフシートを選択する

VBAで次のグラフシートを選択する

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「vba グラフシートを順番に見る」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

複数のワークシートと複数のグラフシートが混在しているブックで、VBA(Visual Basic for Applications)を使って、グラフシートだけを順番にアクティブにしたい・選択したいというニーズは確かにありそうです。そんなマクロを作ってみました。

[スポンサードリンク]

次のグラフシートを選択するサンプルマクロ

以下のようなマクロで、次のグラフシートを選択することができます。

Sub 次のグラフシートをアクティブにする()

 Dim flg As Boolean: flg = False ' グラフシートが選択されたらTrue
 Dim i As Long

 If Charts.Count = 0 Then Exit Sub

 For i = ActiveSheet.Index + 1 To Sheets.Count
  If TypeName(Sheets(i)) = "Chart" Then
   Sheets(i).Select
   flg = True
   Exit For
  End If
 Next i

 If flg = False Then Charts(1).Select

End Sub

最後のグラフシートや、それ以降のワークシートがアクティブな状態で上記のマクロを実行した場合は、先頭のグラフシートが選択されます。

サンプルマクロの解説

現在のシートの右隣のシートからFor~Nextループを回して、
 For i = ActiveSheet.Index + 1 To Sheets.Count

もしもグラフシートだった場合に、
  If TypeName(Sheets(i)) = "Chart" Then

そのシートを選択して、フラグをTrueにして、For~Nextループを抜けています。
   Sheets(i).Select
   flg = True
   Exit For

最後のグラフシート以降のシートが選択されていた場合、フラグがFalseのまま先のFor~Nextループが終了するので、その場合に先頭のグラフシートを選択するようにしています。
 If flg = False Then Charts(1).Select

この先頭のグラフシートを選択する処理があることなどから、最初にグラフシートがなければプロシージャを終了する処理を入れています。
 If Charts.Count = 0 Then Exit Sub

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAで次のグラフシートを選択する

「グラフ・Chart」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.