人気ブログランキング | 話題のタグを見る
<< ヴェダンタ(VEDL)から配当... 「TH69の亜米利株」の改良進... >>

【エクセル】マクロショートカット競合(重複)対策

TH69です。

今回はエクセルのマクロねたですので、興味のない方は読み飛ばして下さい。

エクセルのマクロにはそれぞれ「マクロショートカット」が設定でき、通常は「Ctrl」キー + 「英文字」キーを設定します。「Ctrl」キーと「登録したキー」を同時押しすると、マウスや他の操作なしにマクロの実行が可能になる便利な機能です。ただ「s」や「v」などは、それぞれエクセル自体のショートカットとして登録されているため、マクロショートカットにはあまり登録しません。となると登録できるキーはかなり限られてくるわけで、当然複数のブックで同じマクロショートカットを設定しまうことが発生します。

そのときに問題になるのが、マクロショートカットでは「複数開いたブックのアクティブでないブックのマクロも実行されてしまう」と言うとんでもない動作なのです。具体的に言うと、マクロを実行したいブックしか開いていない場合やマクロボタンで実行する場合は問題ありませんが、同じマクロショートカットを登録したブックが複数開いていると、マクロを実行したいブック(アクティブブック)ではない裏で開いているブックのマクロが意図せずアクティブブックで実行されてしまう事がある、と言うことです。

これは本当にとんでもないことで、マクロを実行したかったブックの内容が全て書き換えられて上書き保存して終了、などという本来あってはならない事態も発生する可能性があります。私もこれで何度か痛い目にあいましたが(常にバックアップは取っているので、被害は最小限でしたが…)、マクロに以下のコードを入れることにより発生を防止することができるようになりました。

【エクセル】マクロショートカット競合(重複)対策_e0382354_10192017.gif

【コード例】
Sub マクロショートカット競合対策()
If ActiveWorkbook.Name = ThisWorkbook.Name Then

 (やりたい処理)

Else
MsgBox "ご利用のマクロは他のファイルと競合しています", vbInformation
End If
End Sub


VBAのコード的には簡単なIF文なのですが、

もし、アクティブブックの名前がこのブック(マクロを実行しているブック)の名前と同じなら

 (やりたい処理)を実行

そうでなければ
「ご利用のマクロは他のファイルと競合しています」というメッセージボックスを表示して
マクロを終了します。


【エクセル】マクロショートカット競合(重複)対策_e0382354_10425192.gif

誰かの役に立てば嬉しく思います。(=^_^=)


にほんブログ村 米国株


by th1252 | 2018-03-31 12:40 | Trackback | Comments(0)
名前
URL
削除用パスワード
<< ヴェダンタ(VEDL)から配当... 「TH69の亜米利株」の改良進... >>