セル範囲のアドレスを取得するユーザー定義関数

Excelでセル範囲のアドレスを取得するユーザー定義関数の使い方

Excelの作業中、特定のセル範囲のアドレスをテキストとして取得したいことはよくあります。この記事では、そのようなニーズに応えるユーザー定義関数を紹介します。

紹介するユーザー定義関数

ここでは作成するユーザー定義関数の名前を「GetRangeAddress」とします。

「GetRangeAddress」は、指定したセル範囲のアドレスをテキストとして返すユーザー定義関数です。複数のセル範囲を指定することも可能で、その場合はカンマで区切られたアドレスの文字列を返します。

この関数の特徴

  • 複数のセル範囲のアドレスを一度に取得できる
  • 半角スペースを使用して、交差範囲や重複範囲も簡単に調べることができる
  • シンプルなコードで実装可能

関数コードの登録の仕方

この関数を利用するには、まずExcelのVBAエディタに関数のコードを登録する必要があります。以下の手順でコードを追加してください。

  1. Excelを開き、[Alt] + [F11] キーを同時に押してVBAエディタを起動します。
  2. [挿入] メニューから [標準モジュール] を選択して新しいモジュールを追加します。
  3. 新しく追加されたモジュールのコードウィンドウに、以下のコードをコピー&ペーストします。
Function GetRangeAddress(ParamArray args() As Variant) As String
    Dim i As Integer
    Dim result As String
    
    For i = LBound(args) To UBound(args)
        If i > LBound(args) Then
            result = result & ","
        End If
        result = result & args(i).Address(False, False)
    Next i
    
    GetRangeAddress = result
End Function

関数の使用方法

関数のコードを追加したら、Excelのシート上で関数を使用することができます。

  1. Excelのシートを開きます。
  2. 関数を挿入したいセルを選択します。
  3. タブの [関数の挿入] ボタンをクリックします。
  4. [ユーザー定義] グループから「GetRangeAddress」関数を選択し、引数としてセル範囲を指定します。

実行後の確認点

関数を実行すると、指定したセル範囲のアドレスがテキストとして表示されます。複数の範囲を指定した場合、カンマで区切られたアドレスが表示されます。

以下の式ならば「B2:D5」が返ります。

=GetRangeAddress(B2:D5)

以下の式ならば「B2:D5,B2:D5,F2:H5,J2:L5」が返ります。連続的な範囲は「:」、非連続的な範囲は「,」で区切られます。

=GetRangeAddress(B2:D5,B2:D5,F2:H5,J2:L5)

また、「半角スペース接続」をすると、重複範囲だけを返します。以下の式では「D6:F8」を返します。「半角スペース接続」についての詳しい説明はリンク先のページを参照してください。

=GetRangeAddress(6:8 D:F)

以下のようにかっこを使った「半角スペース接続」も可能です。以下の式では「C6:C9,E6:F9
」を返します。

=GetRangeAddress(6:9 (C:C,E:F))

使用時の注意点

関数は指定したセル範囲のアドレスをテキストとして返すだけなので、実際のセルの値や内容には影響しません。また、存在しないセル範囲を指定した場合や、不正な引数を指定した場合はエラーが表示されることがありますので、注意してください。

このユーザー定義関数を使用することで、Excelの作業がより効率的になることを期待しています!

コメント