Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » アクティブシートがワークシートかグラフシートかを判定する

アクティブシートがワークシートかグラフシートかを判定する

対象:Excel2007, Excel2010, Excel2013

アクティブなシートがワークシートかグラフかを判定するVBAのコード

VBA(Visual Basic for Applications)でExcelマクロを作っていると、アクティブなシートが、ワークシートなのか、グラフシートなのか判定したいと感じることがあります。

[スポンサードリンク]

アクティブシートの種別を判別するサンプルマクロ

以下のようにTypeName関数を使うと、アクティブなシートの種別を判定することができます。

Sub アクティブシートの種類を判別する()

 Dim type_name As String
 Dim msg As String

 type_name = TypeName(ActiveSheet)

 Select Case type_name
  Case "Worksheet"
   msg = "ワークシート"
  Case "Chart"
   msg = "グラフシート"
  Case Else
   msg = type_name
 End Select

 MsgBox "アクティブなシートは、『" & msg & "』です。"

End Sub

TypeName関数の引数に、ActiveSheetプロパティを指定すると、シートの種類に応じて「Worksheet」「Chart」といった文字列が返されるので、その文字列でシート種別を判別できます。

ワークシートかどうかを判定するサンプルマクロ

アクティブなシートが、ワークシートかそうでないかという判定なら以下のマクロでもOKです。

Sub アクティブシートがワークシートかどうかを判定する()

 Dim msg As String

 If ActiveSheet.Type = xlWorksheet Then
  msg = "ワークシートです。"
 Else
  msg = "ワークシートではありません。"
 End If

 MsgBox msg

End Sub

アクティブなシートがワークシートのときは、ActiveSheet.Typeは、Worksheet.Typeと同じことで、

アクティブなシートがワークシートかグラフかを判定するVBAのコード

列挙型・XlSheetTypeに定義されている定数・xlWorksheet(-4167)を返してくるので、

アクティブなシートがワークシートかグラフかを判定するVBAのコード

それで判定するという方法です。

ちなみに、アクティブシートがグラフシートのときに、ActiveSheet.Typeは、「3」とか「4」とかという数値を返してきます。

グラフシートがアクティブだったときに返される、これらの数値が何なのかについては、近日中に別記事として解説します。解説記事を公開しました。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » アクティブシートがワークシートかグラフシートかを判定する

「Sheets・Worksheet」の記事一覧

検索


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

.