見出し画像

「コピペでVBA」想定外のシートが変更されてしまったら?

おはようございます。

コピペでVBAを行った際に、あらかじめBook2とBook4を開いていたのですが、Book4上で反映させたかったにもかかわらず、Book2のコード全部がしっかりコピペ内容が反映されちまったというわけです。初めてコピペでVBAを実践される場合はよくある話なのかもしれません。



対象のファイルかどうかをチェックするだけだね


理由:対象のBookに紐づく標準モジュール上で指示(コピペ)をかけなかったから

事前対策:Book名を標準モジュール画面でチェックしておく。

この部分ですね!Book2になっていたんですね、きっと。コード添付がうまくいくかに気を取られてしまい、前に実践したファイルがまだ残っていたんですよきっと。なので、違うファイルが表示されてらーっとなった際には、左側のツリーのところを変更させる必要があります。


https://wa3.i-3-i.info/word1257.html

こういうのをツリー構造っていうんですね、なので、

VBAのツリー的なもの

ここをもう少し右側に移動すると、ファイル名が表示されるみたいですから、そこの対象VBAProject名の対象Sheet(開いているファイルの中のファイル名と反映させたいシート(複数ある場合は最初のシート)
を、

右クリックし、

標準モジュールを表示させて、そこにコピペすればOKとなりました。


この画面での標準モジュール内で実行してしまうと、Book4でなくBook2に反映されてしまうので、Book4に反映させたければ、


こっち

となるというわけです。

実行したVBA、もう元に戻らない?


こちらはGPT教授による戒め的見解です、てか、有難い助言です。

GPT教授:
マクロによる変更は、実行前の状態に戻すことは困難です。マクロが実行された後、セルの書式や内容が変更されてしまった場合、手動で元の状態に戻す必要があります。

ただし、Excelには「元に戻す」(Undo)機能があります。一連の操作を元に戻すためには、キーボードショートカット「Ctrl + Z」を使用するか、Excelのメニューバーの「元に戻す」アイコンをクリックすることで、直前の操作を取り消すことができます。

ただし、

マクロによって複数の操作が行われた場合や、一度元に戻した後に他の操作が行われた場合、それらを一括で元に戻すことはできません。そのため、マクロを実行する前にデータのバックアップを取るなどの対策を行うことをおすすめします。

また、マクロを実行する前に実行内容を確認し、意図しない変更が行われる可能性がある場合は、事前にファイルの保存やバックアップを行うことも重要です。

変身したままのウルトラマン 現世に未練あり

今日の自由律俳句1句目

もし、実践してしまった場合、手動で訂正するしかないみたいです。

コピペでVBA コピペでファイルは予防策

今日の自由律俳句2句目

マクロ実行する場合は、事前にファイルもコピペでストックの判断、むずかしいところ。

あるモジュールの内容をコピペし、別のモジュールで表示させたい場合-モジュールからモジュールへ

Module4のコードにModule5のコードをコピペしたい時は、Ctrl + Cでコピーし、その後、Module4を右クリックすればいいのかな?と思いがちですが、マウスの場合、「Wクリック」で反映できました。

この記事が参加している募集

自由律俳句

この記事が気に入ったらサポートをしてみませんか?