質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

1回答

2279閲覧

Excelマクロで2つのファイルを比較する。

daisanrock

総合スコア8

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

1クリップ

投稿2020/03/17 07:02

編集2020/03/17 20:53

この二つのエクセルを下記の仕様で比較をしたいのですが、初心者のためどのようなプログラムを書くのか分かりません。
申し訳ありませんが、ご教示いただけますと幸いです。

【ファイル情報】
二つのエクセル(sample1.xlsx / sample2.xlsx)があり、
それぞれのデータ内容は下記となります。

■ファイル「sample1.xlsx」
| A列 | B列 | C列 | D列 | E列 |
AAA BBB 10 あああ ★★
CCC DDD 5 いいい ☆☆
EEE FFF 2 ううう ☆☆

■ファイル「sample2.xlsx」
| A列 | B列 | C列 |
AAA BBB 10
CCC DDD 5
EEE FFF 10

【やりたい事】

  1. sample1.xlsx と sample2.xlsxのA列・B列・C列を比較。
    sample1が主エクセル、sample2が比較用エクセルです。
  2. A列・B列が同じ組み合わせのもので、C列の数値が違った場合は
    sample1のエクセルから、その行のA列~E列を抜粋し、違うシートに書き込む。
    または色付け。
    (上記 例ですと「EEE FFF 2 ううう ☆☆」の行が抜粋対象となります。)
  3. A列・B列が同じ組み合わせのもので、C列の数値も同じであれば「OK」。
  4. sample1のデータが入っている最終行まで、上記処理を行う。
  5. 全ての処理が完了したら「処理完了」のメッセージを出す。

ネット情報の切り貼りですが、現在はサンプルをA列のみとし比較、「4」まで作成しています。
初心者であり非力なので、ご教示いただけますと助かります。
宜しくお願いいたします。

Sub hikaku() Dim hida As Long Dim migi As Long Dim ws1 As Worksheet Dim ws2 As Worksheet Set ws1 = ThisWorkbook.Worksheets("sample1") Workbooks.Open Filename:=ThisWorkbook.Path & "\sample2.xlsx" Set ws2 = ActiveWorkbook.Worksheets("sample") For migi = 2 To 4 For hida = 2 To 8 If ws2.Range("A" & migi).Value = ws1.Range("A" & hida).Value Then ws1.Range("C" & hida).Value = "OK" Exit For End If Next Next For hida = 2 To 8 If ws1.Range("C" & hida).Value = "" Then ws1.Range("C" & hida).Interior.Color = vbYellow Else ws1.Range("C" & hida).Interior.Color = xlNone End If Next End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/03/17 11:58

「現在はここまで作成しています」”ここまで”とは、【やりたい事】の1~5のどこまでのことでしょうか?
meg_

2020/03/17 12:38

質問のコードは実行確認されましたか? こちらで試したところ、マクロブックのC列に「OK」の文字が上書きされますが良いのでしょうか? ※インデックスが2始まりですがシートのデータは2行目から始まっているのでしょうか?
guest

回答1

0

単純に、セルに色を付けたいのであれば、わざわざ、マクロを作る必要性は無いと思います。
Excelのマクロは強力ではありますが、機能や関数で、やりたいことが実現できれば、そちらを優先すべきです。

Excelの条件付き書式設定が使えると思います。
イメージ説明

条件付き書式設定を使えるようになれば、色々便利です。
ぜひ覚えてほしいと思います。

投稿2020/05/25 23:38

kai_keitai

総合スコア344

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問