• ベストアンサー

マクロで別ブックのセルを参照して判定させたいです

まず二つのブックがあって仮にAブック、Bブックとします。 Aブックでマクロを作成していて、二つのブックには商品番号が入っているので一致するのものがあるかを調べます。 二つの商品番号が一致したら、Bブックの商品番号の列(A列)の並びにあるコード(D列)が正しい数字(0 or 1)かどうかを判定します。 このマクロが上手く組めなくて困っています。 どなたかわかる方教えてください。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 マクロは、どんな組み立てをしているのですか? たとえば、お話だけでしたら、関数のCountIf でも、間に合うような気がするのです。 わざわざ、マクロにするためには、他にもいろいろ条件があってしているのではないでしょうか?そうでないと、マクロの意味がなくなってしまうようにも思えます。 単純にマクロにするなら、 WorksheetFunction.CountIf で、戻り値だけを拾えばよいように思います。

cafelove
質問者

お礼

回答ありがとうございました。 確かに他にも色々な条件があって、その中の一つとしてマクロで作りたかったものなのです。 WorksheetFunction.CountIfを今まで知らなかったのですが、これを使えば自分が望んだものを作れそうな気がします。 ありがとうございました。

その他の回答 (1)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

質問文だけではあまり具体的なマクロは書けませんが、activeなシートのA1セルの値でブックB・シート1のA列を検索し、合致した行のD列の値を取得するならこんなコードでも可能です。ご参考まで。 Sub macro1() Dim trg As Range  Set trg = Workbooks("b.xls").Sheets("sheet1").Range("A:A") _    .Find(ActiveSheet.Cells(1, 1).Value)  If trg Is Nothing Then   MsgBox ("B.xlsには合致するコードはありません")  Else   MsgBox ("合致するコードのD列の値は" & trg.Offset(0, 3).Value)  End If End Sub

cafelove
質問者

お礼

回答ありがとうございました。 Findが上手く使えてなかったので、こういう風に使う方法もあるんだと勉強になりました。

関連するQ&A

専門家に質問してみよう