Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11305 / 13644 ツリー ←次へ | 前へ→

【16801】マクロの中のワークシート関数 かかし 04/8/10(火) 14:25 質問[未読]
【16803】Re:マクロの中のワークシート関数 Jaka 04/8/10(火) 15:11 回答[未読]
【16805】Re:マクロの中のワークシート関数 かかし 04/8/10(火) 15:30 発言[未読]
【16807】Re:マクロの中のワークシート関数 かかし 04/8/10(火) 15:53 質問[未読]
【16808】Re:マクロの中のワークシート関数 Jaka 04/8/10(火) 16:18 回答[未読]
【16809】Re:マクロの中のワークシート関数 かかし 04/8/10(火) 16:26 質問[未読]
【16831】Re:マクロの中のワークシート関数 Jaka 04/8/11(水) 14:59 発言[未読]
【16806】Re:マクロの中のワークシート関数 Jaka 04/8/10(火) 15:36 回答[未読]

【16801】マクロの中のワークシート関数
質問  かかし E-MAIL  - 04/8/10(火) 14:25 -

引用なし
パスワード
   マクロでVLOOKUP関数を使いたいのですが、
別のブックの表を参照する場合、どのように
定義すればいいのでしょうか?
お教えください。

EX) 検索値 book1 
  検索表 book = "表".xls
      sheet= 1

【16803】Re:マクロの中のワークシート関数
回答  Jaka  - 04/8/10(火) 15:11 -

引用なし
パスワード
   こんにちは。
エクセル関数がこんな感じだと
'=VLOOKUP("a",[Book2]Sheet1!$A$1:$D$9,3,0)

VVariant = Application.VLookup("a", Workbooks("Book2").Sheets("Sheet1").Range("A1:D9"), 3, 0)
If Not IsError(VVariant) Then
  MsgBox VVariant
End If

【16805】Re:マクロの中のワークシート関数
発言  かかし E-MAIL  - 04/8/10(火) 15:30 -

引用なし
パスワード
   早速ありがとうございます。
実は、以下のような関数でワークシート上にコピーしていましたが
マクロにて自動実行したいと思っています。

複数箇所で同様なファイル名を定義するので
ファイル名やシート名に変数を定義できないでしょうか?

お答えをいただいた、
>VVariant
は、検索結果を格納する変数ですね。

ex)
IF(R6=1,INDEX('D:\[給料表.xls]1'!$A$1:$K$42,MATCH(VALUE(RIGHTB(T6,2)),'D:\[給料表.xls]1'!$A$1:$A$42,0),MATCH(S6,'D:\[給料表.xls]1'!$A$1:$K$1,0)),"")

【16806】Re:マクロの中のワークシート関数
回答  Jaka  - 04/8/10(火) 15:36 -

引用なし
パスワード
   因みに
>VVariant = Application.VLookup("a", Workbooks("Book2").Sheets("Sheet1").Range("A1:D9"), 3, 0)

上のBook2は、開いてないとダメです。
拡張子付け忘れていたので、必要なら付け足してください。

【16807】Re:マクロの中のワークシート関数
質問  かかし E-MAIL  - 04/8/10(火) 15:53 -

引用なし
パスワード
   実は、以下のような関数でワークシート上にコピーしていましたが
マクロにて自動実行したいと思っています。

複数箇所で同様なファイル名を定義するので
ファイル名やシート名に変数を定義できないでしょうか?

お答えをいただいた、
>VVariant
は、検索結果を格納する変数ですね。

ex)
IF(R6=1,INDEX('D:\[給料表.xls]1'!$A$1:$K$42,MATCH(VALUE(RIGHTB(T6,2)),'D:\[給料表.xls]1'!$A$1:$A$42,0),MATCH(S6,'D:\[給料表.xls]1'!$A$1:$K$1,0)),"")

【16808】Re:マクロの中のワークシート関数
回答  Jaka  - 04/8/10(火) 16:18 -

引用なし
パスワード
   ▼かかし さん:
>複数箇所で同様なファイル名を定義するので
>ファイル名やシート名に変数を定義できないでしょうか?

こういう風に文字列としてつなげてやればいいと思います。

FN1 = "給料表.xls"
MsgBox "IF(R6=1,INDEX('D:\[" & FN1 & "]1'!$A$1:$K$42,MATCH(VALUE(RIGHTB(T6,2)),'D:\[" & FN1 & "]1'!$A$1:$A$42,0),MATCH(S6,'D:\[" & FN1 & "]1'!$A$1:$K$1,0)),"""")"

【16809】Re:マクロの中のワークシート関数
質問  かかし E-MAIL  - 04/8/10(火) 16:26 -

引用なし
パスワード
   ありがとうございます。

但し、これはMSGBOXに表示のみの方法です。
この方法で、検索される値を表示することはできるのでしょうか?
計算式の場合、何か足らないような・・・・?
よろしくお願いします。

【16831】Re:マクロの中のワークシート関数
発言  Jaka  - 04/8/11(水) 14:59 -

引用なし
パスワード
   ▼かかし さん:
>但し、これはMSGBOXに表示のみの方法です。

>>ファイル名やシート名に変数を定義できないでしょうか?
ということですので、たとえとしてこんな感じに文字をつなげて、関数を作ればブックやシートを変数として使えますよって事を、メッセージに表示しただけです。

11305 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free