Excel VBA質問箱 IV

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

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


21834 / 76734 ←次へ | 前へ→

【60288】2つの条件でのVLOOKUPをマクロで・・・
質問  モー  - 09/2/7(土) 19:59 -

引用なし
パスワード
   《こんなことがしたいのですが・・・》
クラスと出席番号の2つの条件が一致する人名をマクロで一発表示する。

ファイル1にクラスと出席番号のみが記載されたリストがあり,これに人名を表示する。
ファイル2にテーブルリスト(ファイル名:テーブル.xls,シート名:テーブル)を用意しています。

LOOKUP関数では下記のようなイメージになります。

<ファイル1>クラスと出席番号の2つの条件が一致する人名を表示する側
VLOOKUPの検索値にクラスと出席番号を連結 A2&B2 したものを使用しています。
 
    A    B     C     
 ┌───┬────┬─────────
1|クラス|出席番号| 名前 
2|  1 |  3  |=IF(ISERROR(VLOOKUP(A2&"-"&B2,'C:\デスクトップ\[テーブル.xls]テーブル'!$A$2:$D$8,4,FALSE)),"",VLOOKUP(A2&"-"&B2,'C:\デスクトップ\[テーブル.xls]テーブル'!$A$2:$D$8,4,FALSE)
3|  2 |  1  |=IF(ISERROR(VLOOKUP(A3&"-"&B3,'C:\デスクトップ\[テーブル.xls]テーブル'!$A$2:$D$8,4,FALSE)),"",VLOOKUP(A3&"-"&B3,'C:\デスクトップ\[テーブル.xls]テーブル'!$A$2:$D$8,4,FALSE)
           ※#N/A! を表示させないために,=IF(ISERROR・・・を冒頭に使用しています。

 <ファイル2 テーブル.xls>テーブル側
A列にクラスと出席番号を連結した列を準備しています。
 
     A     B    C    D  
 ┌─────┬───┬────┬────┬─
1|  連結  |クラス|出席番号| 名前 |
2|=B2&"-"&C2|  1 |  1  |山中  |
3|=B3&"-"&C3|  1 |  2  |古賀  |
4|=B4&"-"&C4|  1 |  3  |島田  |
5|=B5&"-"&C5|  2 |  1  |池田  |
6|=B6&"-"&C6|  2 |  2  |寺田  |
7|=B7&"-"&C7|  2 |  3  |山内  |
8|=B8&"-"&C8|  2 |  4  |松本  |

《これを記録マクロでやってみると・・・》
ActiveCell.FormulaR1C1 = _
     "=IF(ISERROR(VLOOKUP(RC[-2]&""-""&RC[-1],'C:\デスクトップ\[テーブル.xls]テーブル'!R2C1:R999C4,4,FALSE)),"""",VLOOKUP(RC[-2]&""-""&RC[-1],'C:\デスクトップ\[テーブル.xls]テーブル'!R2C1:R999C4,4,FALSE))"
といった感じになりました。

ちなみにこれですと,1つのアクティブになっているセルにしか有効にならないため,
冒頭のActiveCell.FormulaR1C1 = のところを
Columns("C:C").FormulaR1C1 =  に変えてみました。

《問題・・・》
これで,うまくいくことはいくのですが・・・,
1.「値の更新:テーブル」というファイル指定のボックスが必ず現れる。
  ⇒このボックスを表示させずして,テーブルリストを参照しに行くことはできないでしょうか?
2.Columns("C:C").FormulaR1C1 =と指定してしまうと印刷したときに白紙ページが永遠と出てしまう。
  (表示はされないが,最後の行まで数式が入ってしまうためです。)
  実際にはファイル1のA列とB列にデータが入っている行までのC列をマクロで指定する方法があればよいのですが,
  そのような方法はありますか?
  印刷する際に印刷範囲を手動で指定し直すという方法もありますが,できれば自動化したいです。
  ちなみにファイル1のA列とB列のデータ入力行数は都度異なります。
3.その他,ほかによい方法があれば教えてください。

よろしくお願いします。

3 hits

【60288】2つの条件でのVLOOKUPをマクロで・・・ モー 09/2/7(土) 19:59 質問
【60289】Re:2つの条件でのVLOOKUPをマクロで・・・ n 09/2/7(土) 21:33 発言
【60297】Re:2つの条件でのVLOOKUPをマクロで・・・ モー 09/2/8(日) 17:41 質問
【60322】Re:2つの条件でのVLOOKUPをマクロで・・・ n 09/2/9(月) 22:55 発言
【60440】Re:2つの条件でのVLOOKUPをマクロで・・・ モー 09/2/21(土) 19:39 お礼

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