- ベストアンサー
VBAと照合について
- エクセル2007で作成した3枚のシート(シート1、2、3)を照合し、合っていれば印刷する方法について知りたい。
- シート1とシート2は全く同じ内容であるべきものであり、シート3にはマクロのボタンを作成し、VBAコードを使って二枚のシートを照合し、メッセージボックスで結果を表示したい。
- 関数ではなく、照合から印刷までを自動処理するためのVBAコードを教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
これってコードを書いてくれという依頼のようだが、こここのコーナーはコードを作成依頼する下請け的なコーナーではないはずです。親切な人が現れればよいが。 >IF関数までは理解でき・・ とVBAが組めることとは関連はありません。IF関数など関数でもはじめの初めです。 VBAでやりたいなら自分で学習を始めてください。 プログラムは、文法やコードの勉強だけでなく、ロジックと言う、処理の仕方の習得が背景にあります。 それは経験を積まないと、ベターなものは作れません。 ーー まず比較するセル位置はシート1とシート2は全く同じですか。それであればやさしいが。 それが保証されないとなると、特別なロジックでやらないと鳴らない。関数などでは両者から相手に対してチェックをやら無いとなりません。 保証されない場合、比較キーというものが必要です。例えば氏名コードとか商品コードとか。 そしてある列で2度3度比較キーについて、同じものが出現しないのか? そういうことにも目が向いてない人がVBAを直ぐ目指してもダメです。 ーー また一致しない部分があったとして、どの範囲で印刷するのか? 両方の行だけ? シート全体?(質問はこちらに受け取れるが、なぜシート全体を印刷する必要があるのか疑問有り)
その他の回答 (2)
データの照合だけは次のマクロで出来ます。 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
- kmetu
- ベストアンサー率41% (562/1346)
シートの比較は以下のページを参考にして http://homepage3.nifty.com/bear/vbatec/vbatec90.htm 印刷は ActiveWindow.SelectedSheets.PrintOut Copies:=1 とかでできます。 あとはご自分で組み合わせください。