ExcelVBAでアクティブセルのワークシートを簡単に特定する方法

Excel VBAを活用して、アクティブセルがどのワークシートに位置しているのかを迅速に特定する方法を学びましょう。

ExcelVBAでアクティブセルのあるワークシートを調べる方法ってどうやるの

簡単なコードで、すぐにアクティブセルのワークシートを特定することができますよ。この記事で詳しく解説します。

目次

「ActiveCell.Worksheet.Name」と「ActiveCell.Parent.Name」の解説

Excel VBAでは、アクティブセルが属しているワークシートの名前を取得するための2つの主な方法が提供されています。

ActiveCell.Worksheet.Nameの解説

概要:

ActiveCell.Worksheet.Name は、アクティブセルの所属するワークシートの名前を直接取得するプロパティです。

使用場面:

VBAのコード内でアクティブセルのワークシート名が必要な場合、このプロパティを使用することで直感的にその名前を取得できます。

例:

例えば、アクティブセルが「Sheet1」にある場合、ActiveCell.Worksheet.Name の結果は “Sheet1” となります。

ActiveCell.Parent.Nameの解説

概要:

ActiveCell.Parent.Name では、アクティブセルの「親」オブジェクト、つまりワークシートオブジェクトの名前を取得します。この場合、Parent はアクティブセルのワークシートを参照します。

使用場面:

この方法は、アクティブセルのワークシートを特定したい場面で役立ちます。また、Parent プロパティの汎用性を活かして、他のオブジェクトとの関連性を調べる場面でも使用されます。

例:

アクティブセルが「Sheet2」にある場合、ActiveCell.Parent.Name の結果も “Sheet2” となります。


ActiveCell.Worksheet.NameActiveCell.Parent.Name は、どちらもアクティブセルの所属するワークシートの名前を取得するための方法です。

どちらを使用するかは、コードの目的や好みに応じて選択することができます。

サンプルプログラムを使った解説

Excel VBAを使用すると、具体的なプログラムを通じて様々な操作や情報取得が可能となります。

Sub ShowActiveSheetName()
    Dim wsName1 As String
    Dim wsName2 As String

    ' ActiveCell.Worksheet.Nameを使用してワークシート名を取得
    wsName1 = ActiveCell.Worksheet.Name

    ' ActiveCell.Parent.Nameを使用してワークシート名を取得
    wsName2 = ActiveCell.Parent.Name

    ' 取得したワークシート名をメッセージボックスで表示
    MsgBox "ActiveCell.Worksheet.Nameで取得したワークシート名: " & wsName1
    MsgBox "ActiveCell.Parent.Nameで取得したワークシート名: " & wsName2
End Sub

コードの解説

  • 変数の宣言:
    最初に、wsName1wsName2 という2つの文字列型変数を宣言します。これらの変数は、ワークシート名を保存するために使用されます。
  • ワークシート名の取得:
    ActiveCell.Worksheet.Name および ActiveCell.Parent.Name を使用して、アクティブセルのワークシート名を取得し、それぞれ wsName1wsName2 に保存します。
  • メッセージボックスでの表示:
    MsgBox 関数を使用して、取得したワークシート名をユーザーに表示します。これにより、2つの方法で同じワークシート名が取得されていることが確認できます。
処理内容VBAコード
アクティブセルのワークシート名を取得ActiveCell.Worksheet.Name
アクティブセルのワークシート名をParentを使用して取得ActiveCell.Parent.Name

まとめ

Excel VBAを活用して、アクティブセルがどのワークシートに位置しているのかを迅速に特定する方法を解説しました。

  • Excel VBAでは、アクティブセルの所属するワークシート名を取得するための2つの方法がある。
  • ActiveCell.Worksheet.Name は直接的な方法。
  • ActiveCell.Parent.Name はアクティブセルの親オブジェクトを通じた方法。
  • 2つの方法はどちらも同じワークシート名を返す。

Excel VBAでのアクティブセルのワークシート名の取得方法について明確に理解できました。特に、2つの方法の違いとそれぞれの利用シーンがイメージしやすかったです。

実際にVBAエディタでサンプルプログラムを実行し、様々なシチュエーションでの結果を確認することで、さらに理解を深めることができます。

常に実践的な学びを心がけ、VBAのスキルを磨いていきましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次