『VLOOKUP関数を使いたい』(ぽて) マクロで、VLOOKUP関数を入れたいのですが、どうしたらいいのでしょうか? 自社開発のプログラムから、データを引っ張り込み、それをもとに、マクロを組むということをしています。    A           B   1  あ    =VLOOKUP(A1、○○○、2、FALSE) 2  い    =VLOOKUP(A2、○○○、2、FALSE) 3  う    =VLOOKUP(A3、○○○、2、FALSE) と言うような形にしたいのですが…。 探すセル(A1,A2,など)が、固定数ではないので、RC[−1]というようにしようとしましたが、うまくいきませんでした。 よいアドバイスがあれば、よろしくお願いします。 ---- どうみても、マクロではないので、タイトルからマクロフ文字をはずしました。 上に書かれたVLOOKUP関数ではどういけないのですか? (kazu) ---- マクロの中にVLOOKUPを入れて、最終的にエクセ居繧ナ、上記のような形にしたいのです。 FillDwn = 1 Do while Sheet2!,A1<>"" Range("A1").Offset(FillDwn, 5) = 自社システムデータ (あ、い、う、…) Range("B1").Offset(FillDwn, 5) = VLOOKUP(A1,○○○,2,FALSE) FillDwn = FillDwn + 1 Loop ということをし、最終的に    A           B   1  あ    =VLOOKUP(A1、○○○、2、FALSE) 2  い    =VLOOKUP(A2、○宦宦A2、FALSE) 3  う    =VLOOKUP(A3、○○○、2、FALSE) というかたちにしたかったのですが、うまくいきませんでした。 さらに、A列は不特定なセル数のため、1列目では、VLOOKUP(A1,…)、2列目では、VLOOKUP(A2、…)というようにしたいのです。A列の情報量は、その日によって違います。IF関数や、ほかの関数は、うまくいっているのですが、VLOOKUP関数については、参照するセル(最初のセル)が不特定なため、うまくいきませんでした。 もともとは、エクセル上に、直接関数を入れたのですが、情報量が多くなり、そのファイルを開けるのと、セーブするのに時間がかかるので、困っています。ゆえに、作業が終わると、プリントもしくは、.txtでセーブして、その日のデータを消すと言う状況にする予定です。さらに、ユーザーがエクセル上の関数を変更すると言う可能性もあるので、マクロ上での処理を考えている次第です。 込み入っている状況で大変申し訳ないです… ---- -通常エクセルでお使いの関数をセルに入れて使う場合、それは手で入れても、マクロで書き込んでも、メモリの占有率はまったくかわらず、ロード/セーブ時の時間もまったくかわりません。従ってこの点でお困りでしたら、vlookup 関数設定後、全領域をコピーして値貼り付けをされてはどうでしょうか。通常この問題の解決方としては、これだと思います。数式が完全になくなってしまっては次の設定時に困るというような場合には、テクニックとしては、@一行目のみ関数のままのこしておいて、2行目以降を値貼り付けにする。A見出し行にコメントをつけてそこに関数をコピーして書き込んでおく。(使用時にはコメントからコピーして実領域に貼り付けます)。その他が考えられると思います。 -メモリという点だけからいうと、数式そのものをセルに埋めるのではなく、数式に名前を付けて(挿入⇒名前⇒定義で)、その名前をセルに書いておくという手もあります。しかし、セーブ前の再計算所要時間などはかわるわけではありませんので、値貼り付けのようには効果的ではありません。 -マクロでやる場合には、vlookup 関数をセルに埋め込んで使うことももちろんありますが、ぼくらは、マクロの場合には find メソッド(エクセルの find 関数とは別です)を使って、自分で検索貼り付けをします。みなさん多くの場合にはそうされると思います。 -エンドユーザーに関数をいじられるという件ですが、数式非表示でシートをロックしまキと数式を見たり変更したりできませんので、これをお使いになられてはどうでしょうか。(通りすがりの者)