• ベストアンサー

Excel_VBA_二つのブックで数値を確認する方法

VBA初心者です。AとB2つのブックがありそれぞれのセルA1が同じであれば「同じです」とメッセージを表示し違っているれば「数値が違います」と表示をしたいのですがどのようにVBAをさくせいしたらよいのでしょうか?どなたか教えてくださいませ。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

必要にして十分には,次のことをします。 sub macro1() workbooks.open filename:="C:\folder\book1.xls" workbooks.open filename:="C:\folder\book2.xls" if workbooks("Book1.xls").worksheets("シート名").range("A1").value = workbooks("Book2.xls").worksheets("シート名").range("A1").value then msgbox "等しい" else msgbox "等しくない" end if workbooks("Book1.xls").close false workbooks("Book2.xls").close false end sub つまり。 1.(準備)VBAでセルの値を調べるためには,まず開かないと始まらない 2.(入力)ブックが開いたら,ブックの,シートの,セルの,値をVBAで取得する 3.(計算)取得した値で比較や計算する 4.(出力)結果を好きな方法で目に見える形にして表す [別の手] sub macro2() thisworkbook.worksheets("Sheet1").range("A1").formula = "='c:\folder\[book1.xls]Sheet1'!A1 = 'c:\folder\[book2.xls]Sheet1'!A1" if thisworkbook.worksheets("Sheet1").range("A1") then msgbox "等しい" else msgbox "等しくない" end if end sub [別の手] sub macro3() thisworkbook.worksheets("Sheet1").range("A1").formula = "=IF('c:\folder\[book1.xls]Sheet1'!A1 = 'c:\folder\[book2.xls]Sheet1'!A1, ""同じ"",""同じでない"")" msgbox thisworkbook.worksheets("Sheet1").range("A1").value thisworkbook.worksheets("Sheet1").range("A1").clearcontents end sub 分析してみてください。

su_guru
質問者

お礼

ありがとうございます。うまく動かすことができました。また機会があればよろしくお願いしたします。

その他の回答 (1)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

ブックAのThisWorkbookにて開いた時に比較する例(EXCEL2007形式の場合、拡張子はXLSXに変更してください。) Private Sub Workbook_Open() Workbooks.Open Filename:="B.XLS" If Workbooks("B.XLS").Worksheets("Sheet1").Range("A1") = Range("A1") Then MsgBox "同じです。", vbOKOnly, "BookBとの比較" Else MsgBox "数値が違います。", vbOKOnly, "BookBとの比較" End If End Sub

su_guru
質問者

お礼

ありがとうございます。大変参考になりました。

関連するQ&A