こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBAと照合について

VBAと照合について

下記のような3枚のシート(上からシート1,2,3)をエクセル2007で作成しています。

シート1とシート2は全く同じ内容であるべきものです。

しかし、出所が違うため、両者のシートを照合して

もし合っていれば、シート1を印刷したいのです。

なお、ここではあえて、1月4日分の売り上げは、わざと違う値を入力しています。

シート3にマクロのボタンを作成し、VBAで二枚のシートを照合し、メッセージボックスで

合っていれば印刷OK,違っていれば印刷中止にしたいのです。

IF関数までは理解でき、シート3のB2からE4までは=IF(sheet1!B2=sheet2!B2,"","×")

等で処理していて、違っているセルに条件付き書式で×を表示するようにしています。

ただ、関数ではなく、照合から印刷までをマクロで自動処理したいので、VBAコードが知りたいです。

よろしくお願いします。

マルチメディアファイルは削除されたか見つかりません。

投稿日時 - 2010-08-23 21:05:17

QNo.6130476

すぐに回答ほしいです

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

これってコードを書いてくれという依頼のようだが、こここのコーナーはコードを作成依頼する下請け的なコーナーではないはずです。親切な人が現れればよいが。
>IF関数までは理解でき・・
とVBAが組めることとは関連はありません。IF関数など関数でもはじめの初めです。
VBAでやりたいなら自分で学習を始めてください。
プログラムは、文法やコードの勉強だけでなく、ロジックと言う、処理の仕方の習得が背景にあります。
それは経験を積まないと、ベターなものは作れません。
ーー
まず比較するセル位置はシート1とシート2は全く同じですか。それであればやさしいが。
それが保証されないとなると、特別なロジックでやらないと鳴らない。関数などでは両者から相手に対してチェックをやら無いとなりません。
保証されない場合、比較キーというものが必要です。例えば氏名コードとか商品コードとか。
そしてある列で2度3度比較キーについて、同じものが出現しないのか?
そういうことにも目が向いてない人がVBAを直ぐ目指してもダメです。
ーー
また一致しない部分があったとして、どの範囲で印刷するのか?
両方の行だけ?
シート全体?(質問はこちらに受け取れるが、なぜシート全体を印刷する必要があるのか疑問有り)

投稿日時 - 2010-08-23 21:53:12

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

データの照合だけは次のマクロで出来ます。

Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2010/8/23 ユーザー名 :
'
Dim mygyo As Integer, myretu As Integer
For mygyo = 2 To 4
For myretu = 2 To 5
If Worksheets(1).Cells(mygyo, myretu) = Worksheets(2).Cells(mygyo, myretu) Then
Worksheets(3).Cells(mygyo, myretu) = Null
Else
Worksheets(3).Cells(mygyo, myretu) = "X"
End If
Next
Next

'
End Sub

投稿日時 - 2010-08-23 22:00:59

ANo.1

シートの比較は以下のページを参考にして

http://homepage3.nifty.com/bear/vbatec/vbatec90.htm

印刷は

ActiveWindow.SelectedSheets.PrintOut Copies:=1

とかでできます。

あとはご自分で組み合わせください。

投稿日時 - 2010-08-23 21:41:14

あなたにオススメの質問