• 締切済み

こうゆう時はどうしたら?? エクセルVBA

例)キーである「業者名称」が、別シートの業者リストの中にあった   場合、業者名称の横のセルに"○"をつける みたいなことをしたいのですが、VBAでしようとするとどうゆう プログラムをいれたらいいのでしょうか?? 関数でいう、MATCHみたいな感じになると思うんですけど。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

エクセルVBAで質問のことをやる方法の型は3種あります。 (1)For Nextのような繰り返しで、全セルを舐めてあるかどうか聞いていく方法 (2)VBA独自のFindなどのメソッドを使う方法 (3)VBAの中でWorksheetFunctionであるMatch、Vlookupなどを使う方法 の3つで、VBAらしいのは(2)、VBAを知らなくても他言語を知っていればできるのが(1)、VBAの感じが少ないのが(3)ですが、(3)がコード量が少なくて済みます。 詳細はとりあえず略。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

Sheet1とSheet2のA列を比較する場合の例です。 完全一致の場合のみSheet1のリストの当該セル右隣に○を打ちます。 Sub 照合test() Dim gyoA As Integer 'A最大値 Dim gyoB As Integer 'B最大値 Dim i As Integer 'ループ用 Dim n As Integer 'ループ用 gyoA = Sheet1.Range("A65536").End(xlUp).Row gyoB = Sheet2.Range("A65536").End(xlUp).Row For i = 1 To gyoB For n = 1 To gyoA If Sheet1.Cells(n, 1) <> "" Then '空白でない場合 If Sheet1.Cells(n, 1) = Sheet2.Cells(i, 1) Then '同一データがあったら Sheet1.Cells(n, 2) = "○" 'となりに○ End If End If Next Next End Sub

  • miwaharu
  • ベストアンサー率25% (29/112)
回答No.1

こんにちは、VBAでも関数がつかえるはずです VLOOKUPでよいのではないでしょうか。

関連するQ&A