[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『関数で取得したシート名をセル参照に用いる』(むるあに)
[関数で取得したシート名を他のシートからセル参照をする際に用いる]
多分、単純なことだと思うのですが、どうにも解決できないので、 お知恵をお貸しください。
[[20040819143128]]『目次を作りたいのですが』(辛汗)
を参考に、
名前 ShName 参照範囲 =IF(GET.WORKBOOK(4)>=ROW(),MID(INDEX(GET.WORKBOOK(1),ROW()),FIND("]",INDEX (GET.WORKBOOK(1),ROW()))+1,31)&T(NOW()),"") を使わせていただいて、たくさんのシートがあるブック内に、そのブック内に あるシート名の一覧を表示した"Index"のシートを作りました。 (感動しました。ありがとうございます)
今度は、その取得したシート名を利用して、各シート内にある特定のセル ($AW$17ですが)の値を抜き出して、"INDEX"のシート内に表を作りたいのです。 同一ブック内の他のシートのセルが='シート名'!$AW$17で取得できることは、 知っていたのですが、シート名のところが変数になるケースは初めてでよく わかりません。ちなみにシート名はばらばらで、規則性はありません。 簡単なことな気がして気が引けるのですが、どうぞよろしくご教授ください。
EXCEL2000、XP(両方英語版)です。
参照をしたいセル範囲が$AW$17であるとすると =ShName&"!$AW$17" の数式で参照したいセル参照を表す「文字列」を作ることができます。 ただし、これは単に文字列が表示されるだけで参照はできませんよね。 「参照を表す文字列を基にして 実際の参照を行う」関数はINDIRECT関数です。 =INDIRECT(ShName&"!$AW$17") (みやほりん)
みやほりんさん、ありがとうございます。実はIndirectには行き着いたので、 いろいろやってみたのですがエラーがでました。何か間違ってたのでしょうね。 もう朝方 なので(アメリカなので)、明日職場の方のPCでやってみます。 また報告いたします。 (むる)
やはり上記の式を入れると"User-defined type not defined"のメッセージがでて、 #REF!が表示されます。=ShNameだけだとエラーメッセージはでるもののちゃんと シート名が表示されます。それをカット&ペーストするとエラーメッセージも なく、シート名が表示されるのでそのまま使いましたが、なにかdata Typeの 宣言が関係しているのでしょうか?
構造がわかっていないのですが、このShName という関数は、何かプログラムを書いたことになっていて、その中に何かの形で 型の宣言が必要なものと推察しています。合っていますでしょうか?その場合、 どこをみればいいのでしょう?Vidual Basic Editorなるものを開けてみましたが、 訳わかってません。すいませんが、教えていただけないでしょうか?
おはようございます(って、時差があるから違いますね)。 ShNameで使用しているGET.WORKBOOK()関数は4.0マクロ関数と呼ばれるもので、 Excel5以前のブックを互換とするために残されているVBA対応以前のマクロ機能です。 従って、VBAとは直接の関係はありません。 一種のプログラム言語といえますが、「型の宣言」が必要とは思えません。 日本語版で(Excel2000、Win98)の試行ではエラーにならなかったので、 英語版との何らかの仕様の違いがあるように推測できます。 ただ、ShName単独では値だけは返っているようなので 直接INDIRECTの中でShNameを使用しないで、たとえば次のように 一旦別のセルへシート名を返した上でそれをINDIRECTの引数として 利用すれば機能するかもしれません。
といった方法で試行してみてください。 (みやほりん)
どうもありがとうございます。その方法もやってみたのですがやはり同じ "User-defined type not defined"がでます。しかし、シート名の中に"-"を もったものがあるのに気が付いて"_"に変えたところ数字が表示されました! "-"がマイナスになっていて未定義の名前が使われたことになってたんでしょうか。。
でもそれでも一回は"User-defined type not defined"が出ます??とりあえず、 これで使えるので、一応使っていきます。どうもありがとうございました。 奥が深いですね。 機会があったら勉強したいですが。。(むる)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.