以下の関数を標準モジュールに書いて、ワークシート関数のようにセルの中に書く。
ThisCellプロパティは、ユーザー定義関数内で使うことで自分セル位置を取得できる。使う場合は、Excel.Application.ThisCellまたはApplication.ThisCellとApplicationを付ける必要がある。型はRangeなのでRow、CollumnやOffsetも使える。
Function myAddress()
myAddress = Excel.Application.ThisCell.Address(0, 0) '0はFalseでも同じ。0が無いと絶対表示$A$1になる
End Function
Function myCells()
myCells = "Cells(" & Excel.Application.ThisCell.Row & "," & Excel.Application.ThisCell.Column & ")"
End Function
Rowは行、Columnは列のこと。
AceitveCellやSelectionもアドレスを表示することができるが、これらは選択しているセルの位置であり、ユーザー定義関数が入っているセルの位置ではない。もし、ActiveCellやSelectionを使うと上図の場合は、セルA1を選択しているので左のmyAddress()は、A1:D5のすべてがA1に、右もすべてCells(1,1)になる。
ユーザー定義関数を作る時に自分のセルを扱いたい場合はThisCellを使う。
(Visited 1,897 times, 2 visits today)