- 締切済み
2シート間での重複を比較して警告を表示させたい。
すいません。 初めてOKWaveを利用するので、 どんな質問の仕方が良いのかわかりませんが よろしくお願いします。 タイトルの件をエクセルVBAで表現するにはどうすればよいでしょうか? シート1には対象ホスト シート2には対象外ホストと仮定します。 保存する際に同じ文字列がないかチェックし、 重複があった際はメッセージ警告を表示させ保存を防止させたいのです。 もしくは違う方法で良い案があれば、お願いします。 お手数だとは思いますが、 ソースと説明文を記載して頂けると参考になります。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
この質問はコードを書かせて説明文までかけという甘えた内容で、ここはほしいコードを作成してもらうコーナーではない。 せいぜいヒントを与えるところまで。 スクールではないから、それ以上はVBAを教える学校でも行って、勉強してください。 (1)データ全行を逐次とらえて処理するコードはどうするか (2)当シートと他シートのデータを扱うときはどうするか (3)ある行のある列(重複を排除したい項目)のセルデータをとらえて重複チェックはどうするか 色々なやり方がある。 「VBAでエクセル関数を使う」ところの1つのやり方をヒントに挙げておく。 Sub test01() Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") For i = 2 To 3 sh1.Cells(i, "G") = WorksheetFunction.CountIf(sh2.Range("$a$1:$a$100"), sh1.Cells(i, "F")) Next i End Sub sh1.Cells(i, "G") の値が、ここで1以上なら、sh1.Cells(i, "F"))値が、Sheet2のA列にあるということの例。 >重複があった際はメッセージ警告を表示させ保存を防止させたいのです 上記はデータが入力し終わって、一斉に全行チェックするときのコード。 入力したときの即座チェックのコードではないことを認識しておくこと。 この辺もまだ判ってないのでは(イベント処理かバッチ処理か)。
お礼
回答ありがとうございます。 すいません。確かに甘え過ぎてました。 とても参考になりました。 関数でもいろいろなことができるのですね。 マクロで表現をしてみようと今試みているのですが、 難しいですね。 >重複があった際はメッセージ警告を表示させ保存を防止させたいのです ここに関しては、マクロで表現をした方が良さそうですかね?