ActiveSheet

にメンテナンス済み

VBA を活用する最も一般的なシチュエーションの一つに、ワークシートの操作があります。

Excel の特定のシートから情報を取得したり、計算結果をシートに出力したりするためには、まず対象のシートを取得する必要があります。

VBA にはシートを取得する方法が複数用意されていますが、今回はその中でもActiveSheetプロパティを使った方法について解説します。

ActiveSheetを使用する際の注意

ActiveSheetプロパティは、シートを取得する方法として一般的であり、実際に多くの場面で利用されています。

ただ、ActiveSheetプロパティは、現在アクティブなシートを取得するためのプロパティであるため、コードが実行されるタイミングによっては、意図しないシートが取得される可能性があります。

そのため、可能な限り他の方法を使ってシートを取得することをお勧めします。

ActiveSheet プロパティの使い方

ActiveSheetプロパティは、現在アクティブなシートを取得するためのプロパティです。

一般的な使い方は、以下のようになります。

ActiveSheetの使い方
Dim ws As Worksheet
Set ws = ActiveSheet
MsgBox ws.Name

上記のコードを実行すると、現在アクティブなシートの名前がメッセージボックスに表示されます。

ActiveSheetプロパティはApplicationクラスのプロパティであるため、コード中でActiveSheetと記述するだけで取得することができ、非常に簡単にシートを取得することができます。

変数に代入する場合は、Worksheet型の変数を用意し、Setステートメントを使って代入します。

具体例

現在アクティブなシートを印刷する

現在アクティブなシートを印刷する
Private Sub PrintActiveSheet()
    ActiveSheet.PrintOut
End Sub

現在アクティブなシートのセルに値を入力する

現在アクティブなシートのセルに値を入力する
Private Sub InputValueToActiveSheet()
  ' 現在日時を取得
  Dim now As Date
  now = Now

  ' 現在アクティブなシートのA1セルに現在日時を入力
  ActiveSheet.Range("A1").Value = now
End Sub
#VBA #Excelの操作