- ベストアンサー
VBAで2つのBOOKのセル範囲を比較
- VBAを使用して、異なるBOOKのセル範囲のデータを比較し、不一致があるかを確認する方法について質問します。比較するセル範囲をApplication.Inputboxを使用して選択する際、画面を分割して2つのBOOKを並べて表示させることで、選択する範囲を簡単に指定できる方法を教えてください。
- VBAで2つのBOOKのセル範囲を比較する際に、セル範囲をあらかじめVBAで指定するのではなく、画面上で選択する方法があります。ただし、大きな範囲を選択する場合、画面が半分に分割されてしまい、選択が難しくなります。比較元のBOOKを画面全体に表示して、選択範囲を指定し、次に比較先のBOOKを表示して選択できるようにする方法を教えてください。
- VBAを使用して、異なるBOOKのセル範囲のデータを照らし合わせ、不一致があるかを確認したいです。選択範囲をApplication.Inputboxを使用して指定する方法では、画面を分割して2つのBOOKを横に並べる必要があります。しかし、大きな範囲を選択する場合、画面が半分に分割され、選択が困難になります。既存のBOOKを画面全体に表示し、比較範囲を選択した後に、比較先のBOOKを表示して選択する方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
マクロなら Windows(2).Activate とか ActiveWindow.ActivateNext でも良いです。 Window は二つ限定のコードですが
その他の回答 (4)
- watabe007
- ベストアンサー率62% (476/760)
>Set buf(0) = Application.InputBox(Prompt:="セルを選択してください。", Type:=8) >myV = buf(0).Value CreateObject("WScript.Shell").SendKeys "^{F6}" >Set buf(1) = Application.InputBox(Prompt:="比較するセルを選択してください。", Type:=8)
お礼
Ctrl+F6のショートカットキーをマクロ化したのですね。ありがとうございます。
- kkkkkm
- ベストアンサー率66% (1742/2617)
こちらを使用してみてはいかがでしょう。 エクセルのセル参照ダイアログを作成し利用します。 テキストボックス2個作るとそれぞれ参照できます。 セルを参照するボタン http://officetanaka.net/excel/vba/tips/tips53.htm
お礼
Dialogsheetでこんなことができるのですね。 ありがとうございます。
- Thiotimoline
- ベストアンサー率60% (3/5)
{Ctrl}+{F6} のことでしょうか?
お礼
なーるほど。 Ctrl+F6のショートカットキーでBOOKを切り替えられるのですね! これはいいですね、ありがとうございます。
- kon555
- ベストアンサー率51% (1848/3569)
マクロ用のブックを作成してしまう事、「選択範囲取得用」と「マッチング用」のマクロ2つを組み合わせる事をオススメします。 ここまで組める方なら簡単なレベルなので、具体的なコードは書きませんが、多分軽く作れると思います。使いやすいように工夫して見てください。 1.選択範囲取得用マクロを実行すると、マクロ用のブックに選択した範囲を記録する。 2.マッチング用マクロを実行すると、手順1で記録した範囲に対してマッチングを行う。 ちなみに作業時の実行用マクロを用意して計3種にするのが作業的にはラクです。 範囲登録がされていない場合は選択取得マクロ実行。登録されているならマッチング実行、という形です。 エクセルVBAの場合、取得したデータを一旦ブックに書き出して別マクロで参照する事は非常に簡単です。上手く使うと発送次第でかなり柔軟な処理ができますよ。
お礼
ありがとうございます。 取得したデータを一旦別のブックに書き出して別マクロで参照する方法も考えたのですが、現在2つのBOOKを開いただけでもときどきエクセルが固まるほどなので、さらにBOOKは増やしたくなかったのです。すみません。
お礼
ActiveWindow.ActivateNext は CreateObject("WScript.Shell").SendKeys "^{F6}" と同じことなんですね。ありがとうございます。