• ベストアンサー

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

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

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答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% (7418/18948)
回答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

  • エクセルVBAでブック間のコピーをしたい。

    エクセルVBAでブック間のコピーをしたい。 エクセルのVBA初心者です。 複数のブックが開いている時(ブックA,B,C...)に、今選択しているブックAのあるセルを、直前に選んでいたブックBやC(そのつど変わります)にコピーする方法は有りますでしょうか? どなたか教えて下さい。

  • 違うブックを参照して、数値を表示するには?

    質問失礼します。 エクセルで保存した違うブックにあるデータから、複数条件で一致するものを検索し、表示することは可能でしょうか? 例えばブック1のG2に、ブック2のE1を表示させたいのですが、 条件が、ブック1のG2がある行の「B2とC2とD2とE2」の数値や文字列、空白などが、一致する行を,ブック2から検索し、その行にある、E1を、ブック1のG2に表示させたいです。 ブック1とブック2の一致させたい範囲 ブック1のB列、C列、D列、E列の行単位のセルと並び方=ブック2のA列、B列、C列、D列の行単位のセルと並び方 求めたい物 ブック2の条件にあったE列のセルをG列に表示したいです。 可能でしょうか? ブック1   A  B  C  D  E  F  G 1    8  a1 50  1 2    8  a1 50       30 3    8  a1 60       20 4    8  a1 70 20 5    3  b5 60 20     3 ブック2   A  B  C  D  E  F 1 8  a1 50    30  2 8  a1 50  1 3         4 8  a1 60    20 5 8  a1 70 20   6 7 3  b5 60 20  3

  • Excel VBA 複数のブックから新しいブックでひとつの表に集計

       A B 1   45 2   62 82 3   51 . . 複数のExcelファイルに上記のような表があります。「B列に数値が入力されており、なおかつA列に数値が未入力のセル」を、1個とカウントし、新しいブックでファイル名別に項目をつくり、表を作成したい考えています。↓ ファイルその(1)  4 ファイルその(2)  6 ファイルその(3)  0 VBA等で集計する方法はあるでしょうか。よろしくお願いいたします。

  • エクセル(VBA)のブック間でのコピーペーストについて

    こんにちは。VBA入門レベルのものですが、質問させてください。 ブックAとブックBを開いた状態にし、 ・ブックA⇒VBAを組む&データ貼付け先 ・ブックB⇒データコピー元 ブックBの特定セル(例:D10)からブックAの特定セル(例:E12)にコピー⇒貼付 する方法を探しています。 なお、ブックBは、ブック名とシート名が都度変わるので、「ブックAではない方の開いているエクセルファイルからデータをコピーし、ブックAに貼付ける」の構文にしたいです。 また、コピペの他に数式(イコール)で飛ぶ方式でもかまいません。 この内容でのVBAの記述方法が分かる方、どなたか教えて頂けますでしょうか。 すみませんがよろしくお願いいたします。 ※エクセル2003です。

  • 他のブックセル数値を新しいブックに利用したい

    教えてください、エクセルの初心者です 他のブックで作成した、表を他の新規ブックで 利用したいのですが。 その参照したいブックの参照したいセルは合計金額のため 一定の数値行毎に記入されています。 新規ブックの表ではその参照数値を日付ごと(一行ごと)に 表示させたいのですが?  参照したいブックの10行毎に参照したいセルがあります。 それを新規ブックで1行ごとに表示させたいのですが? 例 新規ブックのB20というセルにSUM('C:\WINDOWS\デスクトップ\○○○\○○○\[○○○.xls]○○○'!C900)という参照セルが入っている場合新規ブックのB21にSUM('C:\WINDOWS\デスクトップ\○○○\○○○\[○○○.xls]○○○'!C910)を入れたい場合、そのセルごとに手打ちで 入れなければいけなのでしょうか? ドラックすると自動で参照セルが一つずつずれるように 参照ブックのセルを10ずつずれるように自動で入れられないものでしょうか? 質問の仕方自体も良くわからなくご回答いただける方にご迷惑を おかけしますが、極力簡単にわかりやすく教えていただければ 幸いです、よろしくお願い申し上げます。

  • エクセルでブック上の転記

    例  (1)ブック(a)のsheet1のセルA1~G1を入力専用とする  (2)入力専用に入力する  (3)ブック(b)のsheet1のセルA1~G1に転記される  ※ブック(b)は開いてない状態  (4)(1)を繰り返す   ブック(b)のセルはブック(a)で入力される度に段が変わってる この説明でわかりますでしょうか。 VBAは初心者ですが多少はわかります。

  • エクセルのVBAで新しくブックを開いた上でさらに…

    エクセルのVBAで新しくブックを開いた上でそのブックにVBAを埋め込む事はできますか? 分かりにくいと思うので具体的にかきます。 今、ブック1にコマンドボタンAがあり、このボタンAを押す事により 以下の2つを実現したいです。 (1)あたらしくブック2を開きます。 (2)更にこのブック2のシートにはコマンドボタンBができており (3)このボタンBの機能としてこのボタンBを押すと  ブック2のセルA1に数字1が入ります ブック2が開いた後で自分で、コマンドボタンBのマクロをブック2のモジュール内に書くのは簡単ですが、ブック1のコマンドボタンAを押したときに自動的にブック2のマクロを書き込みたいのです。 今、ボタンAを押すことで(1)と(2)まではできるのですが (3)のやり方がわかりません。 そもそもこういった事はできないのでしょうか? ご存知の人がいたら教えてください。よろしくお願いします。

  • 【Excel-VBA】アクティブセルが参照しているブックを開くには?

    いろいろ検索したのですが、見つからないので質問させていただきます。 対象のセルが他ブックのセルを参照しているとき、そのブックが開かれていない場合、正しい値にはなりません。 (例:A1に =[Book2.xls]Sheet1!$A$3 が入力されている) そこで、そのセルが参照しているブックをVBAで自動的に開く方法を考えています。 つまり、例で言えば、Book2.xlsを開きたいのです。 文字列関数を使ってひとつひとつの文字を取得し、ファイル名を得て開く方法しかないのでしょうか? 何かいい方法があれば教えてください。 よろしくお願いします。

  • SUMIF関数で複数のブックを参照する方法

    A列に1~20の数値がランダムに入っていて、B列~Z列はそれぞれ1~20に対する数値が入っています。 それを数値1項目のB~Zの各々の集計、同2のB~Z、と20までB~Zそれぞれの集計を出すブックを作成しています。 その関数自体はSUMIFでできるをことを教えていただいたのですが、 その集計は複数のブックにまたがっており、その全てからA列の数値を参照しなければならなくなりました。 ブック001のセル01、ブック002のセル01・・・ブック012のセル01、 同様にブック001のセル02、ブック002のセル02・・・ブック012のセル02、といった具合です。 関数で処理することはできるのでしょうか? よろしくお願いいたします。

  • VBA_イコールではない時に○○と表示する方法

    VBA初心者です。A,B,Cのブック間のシート1のセルA1がそれぞれイコールでない時に「AとBはイコールではありません」、「BとCはイコールではありません」、「AとCはイコールではりません」それ以外のときは「すべてイコールです」と表示したいのですがIFを試してみたのですがうまく作成できません。どなたか教えてくださいませ。

このQ&Aのポイント
  • 「Brothermfc-j6997cdw」の給紙トレイの指定で違うトレイが反応するエラーや問題について相談いたします。
  • 何度やり直しても給紙ローラをクリーニングしても同じエラーメッセージが出るトラブルにお困りの方へ、解決方法や対策についてまとめました。
  • Mac OS Ventura 13.0.1で無線LAN接続し、使用中のBrothermfc-j6997cdwで給紙トレイを指定すると違うトレイが反応するエラーが発生する問題についての解説です。
回答を見る

専門家に質問してみよう