すべてのカテゴリ » インターネット・パソコン » 技術・プログラミング

質問

終了

関数式のなかで同一ブック内の他のシートを参照させる際、「Sheet1」などの絶対的なシート名ではなく、すぐ左隣のシートというような相対的な表現は出来ないでしょうか? 具体的には、「1月1日」から「1月31日」までの名前がついたシートがあって、「1月2日」以降のシートのD8に、
=C8+'すぐ左隣のシートの'D8
と入れたいのですが。C8に単日実績を入れて、D8に累計を入れたいのです。お知恵を貸してください。

  • 質問者:inc
  • 質問日時:2010-01-14 15:58:10
  • 0

並び替え:

ユーザー定義関数(マクロ:VBA)を用いて、実現することが出来ます。

★ 左隣のシートのセルを参照する場合
 Function RefLeftSheet(objCell As Range) As Variant
  Application.Volatile
  RefLeftSheet = objCell.Parent.Previous.Range(objCell.Address).Value
 End Function

因みに、右隣を参照させるなら、previous を Next に変更して
 Function RefRightSheet(objCell As Range) As Variant
  Application.Volatile
  RefRightSheet = objCell.Parent.Next.Range(objCell.Address).Value
 End Function

この情報の元ねたは
 http://www.relief.jp/itnote/archives/003281.php  -インストラクタのネタ帳
です。
上記のサイトにサンプルファイルも掲載されています。

尚、ユーザー定義関数の作成方法については、特に回答に記述しませんが、
コメント頂ければ、説明を致します。

  • 回答者:ホーリィ (質問から4時間後)
  • 0
この回答の満足度
  
参考になりました。回答ありがとうございました。

関連する質問・相談

Sooda!からのお知らせ

一覧を見る