Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » 任意のワークシートを相対参照する

任意のワークシートを相対参照する

対象: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

今回のユーザー定義関数では、どのセルを参照するのかと、どのワークシートを参照するのかを指定するために、引数は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,

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » 任意のワークシートを相対参照する

「ユーザー定義関数」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.