対象:Excel2000, Excel2002, Excel2003, Excel2007
右隣のシートを相対参照するユーザー定義関数と、左隣のシートを相対参照するユーザー定義関数を、ご紹介しました。
[スポンサードリンク]
もう一つ、すぐ隣ではなく、任意のワークシートを相対参照するユーザー定義関数もご紹介しておきます。
▼任意のワークシートのセルを参照するユーザー定義関数
Function RefSheet(objCell As Range, intRef As Integer) As Variant
Application.Volatile
RefSheet = Sheets(objCell.Parent.Index + intRef).Range(objCell.Address).Value
End Function
Function RefSheet(objCell As Range, intRef As Integer) As Variant
Application.Volatile
RefSheet = Sheets(objCell.Parent.Index + intRef).Range(objCell.Address).Value
End Function
今回のユーザー定義関数では、どのセルを参照するのかと、どのワークシートを参照するのかを指定するために、引数は2つです。
1つ目の引数:objCellはセルを指定してください。
2つ目の引数:intRefはどのシートを参照するか整数で指定してください。
「-1」なら1つ左隣
「-2」なら2つ左隣
「1」なら1つ右隣
「2」なら2つ右隣
のシートを参照します。
objCell.Parent.Indexで、ユーザー定義関数:RefSheetを呼んでいるシートが何番目にあるかを取得できます。
この数値と引数:intRefを加算することで、参照したいシートを指定できるわけです。
▼サンプルファイル(003335.xls 40KByte)ダウンロード
サンプルファイルの「相対参照している」シートのA1セルに上記のRefSheet関数を入力してあります。シートを移動したりしたときにどのような値が表示されるかなどをご確認ください。
関連語句
自作関数, relative reference,
[スポンサードリンク]
- Newer:LGエレクトロニクス液晶モニターW53シリーズプレゼント当選者発表
- Older:XLSTARTフォルダとは
Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » 任意のワークシートを相対参照する