VBAに選択範囲を記述する場合に選択範囲を自分で考えて記載する必要があります。あらかじめ、選択したい範囲を求めることで、記載のミスを減らすことができます。
VBEの標準モジュールに下のコードを登録して「Excelマクロ有効フォーム」で保存してください。
関数の登録方法は⇒♯000 ユーザー定義関数を登録する方法
登録されたら、シート上からユーザー関数「SelectRange 」が使用できます。
使い方は
ワークシート上で = SelectRange (範囲)の関数として使用することで、選択した範囲を様々な表示形式で表示できます。。
【例】
SelectRange(選択範囲,参照形式,相対参照か絶対参照,シート名)
参照形式 0;R1C1形式,1;A1形式
相対参照か絶対参照か 0;相対参照,1;絶対参照
シート名の表示 0;表示なし,1;シート名表示,2;ブック名シート名表示
=SelectRange(D8:H14,0,1,1)⇒’Sheet1′!R8C4:R14C8
Function SelectRange(R As Range, Optional F As Long = 1, _
Optional A As Long = 1, Optional S As Long = 0)
’選択範囲のセルのアドレスを形式を変えて表示する関数
’ SelectRange(選択範囲,参照形式,相対参照か絶対参照,シート名)
’ F=参照形式 0;R1C1形式,1;A1形式
’ A=相対参照か絶対参照か 0;相対参照,1;絶対参照
’ S=シート名の表示 0;表示なし,1;シート名表示,2;ブック名シート名表示
Dim AD As String
Dim R2 As String
On Error GoTo EXITFUN
R2 = R.Address(ReferenceStyle:=F, RowAbsolute:=A, _
ColumnAbsolute:=A, External:=0)
AD = R.Address(External:=1)
If S = 0 Then
SelectRange = R2
ElseIf S = 1 Then
SelectRange = “‘” & Mid(AD, InStr(AD, “]”) + 1, InStr(AD, “!”)- _
(InStr(AD, “]”) + 1)- 1) & “‘!” & R2
ElseIf S = 2 Then
SelectRange = R.Address(ReferenceStyle:=F, RowAbsolute:=A, _
ColumnAbsolute:=A, External:=1)
End If
EXITFUN:
End Function
Function SearchWordA(R As Range, W As String)
ここで紹介したコード使用による損害に対しては一切責任は負えません。