Excel VBA質問箱 IV

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

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


12056 / 13645 ツリー ←次へ | 前へ→

【12660】教えてください aya 04/4/10(土) 19:44 質問
【12664】Re:教えてください とまと 04/4/10(土) 23:03 回答
【12665】Re:教えてください とまと 04/4/10(土) 23:14 回答

【12660】教えてください
質問  aya  - 04/4/10(土) 19:44 -

引用なし
パスワード
   教えてください。 
例えば、BOOK1とBOOK2のA列に
それぞれID番号が入力された列があります。 
BOOK1のID番号 1〜5 がBOOK2のID番号と 
重複するID番号がある場合、BOOK1のC列にそれぞれ N と表示し、 
重複するID番号がない場合は Y と表示させるには
どうしたらよいでしょうか? 

BOOK1     BOOK2 
 A列   C列   A列 
ID番号 Y/N  ID番号  
 1    Y    2 
 2    N    5  
 3    Y    4 
 4    N   
 5    N   

ちなみにID番号は、BOOK1、BOOK2ともに
増えたり減ったりするのですが、 
データ範囲が変わる度に
それに応じたデータ範囲の処理ができるようにしたいです。 
(BOOK1はデータ入力行以外は完全に空白行にしなければいけません。) 

わかりづらい説明でごめんなさい。 
初心者なのでかなり悪戦苦闘しています。 

どうかよろしくお願いします。

【12664】Re:教えてください
回答  とまと  - 04/4/10(土) 23:03 -

引用なし
パスワード
   aya さん こんばんは

関数の貼り付けでやってみました。
それぞれのデータが入力してある
シートの名前を適宜変更してみてください。


Sub tes()

  Dim sh1 As Worksheet
  Dim sh2 As Worksheet

  Set sh1 = Workbooks("BOOK1.xls").Sheets("Sheet1") '←シート名
  Set sh2 = Workbooks("BOOK2.xls").Sheets("Sheet1") '←シート名

  sh1.Range("C2:C65536").ClearContents
  With sh1.Range("A2", sh1.Cells(Rows.Count, "A").End(xlUp)).Offset(, 2)
      .FormulaR1C1 = _
      "=IF(ISNA(VLOOKUP(RC1,[BOOK2.xls]Sheet1!C1,1,0)),""Y"",""N"")"
      .Value = .Value          '↑シート名
  End With

  Set sh1 = Nothing
  Set sh1 = Nothing


End Sub

【12665】Re:教えてください
回答  とまと  - 04/4/10(土) 23:14 -

引用なし
パスワード
   すみませんちょっと訂正。

Sub tes()

  Dim sh1 As Worksheet
  Set sh1 = Workbooks("BOOK1.xls").Sheets("Sheet1") '←シート名
 

  sh1.Range("C2:C65536").ClearContents
  With sh1.Range("A2", sh1.Cells(Rows.Count, "A").End(xlUp)).Offset(, 2)
      .FormulaR1C1 = _
      "=IF(ISNA(VLOOKUP(RC1,[BOOK2.xls]Sheet1!C1,1,0)),""Y"",""N"")"
      .Value = .Value          '↑シート名
  End With

  Set sh1 = Nothing
 
End Sub

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