• ベストアンサー

Excel 2003 ワークシートを検索するには?

初歩的な質問かな?と思いますが、よろしくお願いします。 シート見出しに勘定科目名を付けたワークシートが複数枚あり、 他に全勘定科目が一覧で見れるシートがあります。 1つ1つリンク貼り付けするのが面倒なので、標準の関数で処理できないか 考えてみましたが、分かりませんでした。 ユーザー定義関数だと、こんな↓感じ(まだ中途半端です)なのですが Public Function Kingaku(Kamoku As String) Kingaku = Sheets(Kamoku).Cells(5, 1).Value End Function これを Excel に標準で組み込まれた関数で処理するためには どのように記述すれば良いですか? ※ユーザー定義関数を使いたくない理由は、マクロをメンテナンス出来る  人が関係者の中にいないからです。

質問者が選んだベストアンサー

  • ベストアンサー
  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.3

財務会計の処理で調書見たいなものが科目別のシートに入っている。 それらのシートにはその科目の決算額がCells(5, 1)に入っている。 これらの集約した表(決算書みたいなもの)を作ろうとしている。 と解釈しました あなたの書いたユーザー定義関数そのままをExcel組み込みの関数で表現すると RC[-1} 関数の行の左の列に科目名(コード?)が入っているとすると =INDIRECT(RC[-1]&"!"&"R5C1",FALSE) こういうことでいいでしょうか

GreatDragon
質問者

お礼

ご回答ありがとうございます。 お陰様で、期待通りの数式が出来ました。 RC 参照って行・列の指定がしやすそうですね。

その他の回答 (2)

回答No.2

>1つ1つリンク貼り付けするのが面倒なので、標準の関数で処理できないか 考えてみましたが、分かりませんでした 勘定科目一覧のシートと他のシートのセルの関係を示さなければ、回答はできません。もしその関係に規則性がなければ、ユーザー定義関数もつくれません。

GreatDragon
質問者

お礼

分かりにくい質問で申し訳ありません。 以降、気をつけます。

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

>Public Function Kingaku(Kamoku As String) >Kingaku = Sheets(Kamoku).Cells(5, 1).Value >End Function これを関数でやるなら セルA1にシート名を入力 =INDIRECT(A1&"!a5") これでよいかな?

GreatDragon
質問者

お礼

ご回答ありがとうございます。 INDIRECT 関数って便利ですね。 お陰様で、ISERROR 関数と IF 関数を追加して期待通りの数式が出来ました。

関連するQ&A