Excel自作 VBA 関数
セルを結合して、数式をリンクして計算する場合エクセルをオートフィルすると、一番上のセル以外が反映されずに不便なことがあります。
この関数を使用することで、結合セルのどの範囲をしていしても表示されている値を取得することができます。
VBEの標準モジュールに下のコードを登録して「Excelマクロ有効フォーム」で保存してください。
関数の登録方法は⇒♯000 ユーザー定義関数を登録する方法
登録されたら、シート上からユーザー関数「MargeV」が使用できます。
使い方は
ワークシート上で = MargeV(セル値) の関数として使用することで、月齢を計算できます。
AgeOfMoon(日付)
月齢を求める関数、正確さを求めるもとではありませんので
大体の目安とお考えください。
[例]
A B
1 | 東京 A1:B2は結合セル。
2 | =MargeV(A1) = 東京
=MargeV(B1) = 東京
Function MargeV(S) As String
'結合されたセルの値を参照する関数
'結合されたセルを参照して数式を入力した場合、一番
'左上のセル以外の数式は空白の結果になります。
'この関数を使うことで、結合されたセル範囲のどの部分
'を参照しても結合されたセルの値を表示できるので、結
'合された表からリストを作るのに便利です。
'MargeV(参照)
'例 A1 C3 結合セル値、東京都
'=MargeV(A1) ⇒ 東京都
'=MargeV(C2) ⇒ 東京都
'=MargeV(D1) ⇒ 空白
On Error GoTo EXITFUN
Dim Madd
Madd = Cells(S.Row, S.Column).MergeArea.Item(1).Address(0, 0)
MargeV = Range(Madd).Value
EXITFUN:
End Function
ここで紹介したコード使用による損害に対しては一切責任は負えません。