Williamには2つのワークブックがあり、それぞれにマクロが含まれています。マクロは異なりますが、同じキーボードショートカットを使用して呼び出されます。ブックの1つだけが開いている場合、ショートカットはうまく機能します。両方のワークブックが同時に開いている場合、Williamは何が実行されるかを正確に知ることはできません。彼は、Excelがショートカットを個別に処理して、両方のブックが開いている場合にキーボードショートカットが調和して機能するようにする方法があるかどうか疑問に思います。

簡単に言うと、マクロ自体にいくつかの変更を加えずにこれを実現する方法はありません。ショートカットキーは「グローバル」です

実行中のアプリケーション(この場合はExcel)のインスタンスに。ワークブックを開くと、ショートカットが内部テーブルに追加されます。このテーブルは、すべてのショートカットと、実行するように指定されているマクロのインデックスとして機能します。

このインデックスは、ブック名のアルファベット順にソートされているようです。ショートカットキーを使用すると、Excelはインデックスを調べて、インデックス内で最初に一致するショートカットを選択します。また、組み込みのショートカットの1つを使用するショートカットがある場合、作成されたマクロは常に組み込みのマクロの前に実行されます。マクロの名前が同じである場合、最初に開かれたマクロが実行されます。

Excelによって維持されるインデックステーブルはアプリケーションインスタンスによって作成されるため、Excelの独自のインスタンスで各ブックを開くようにすることで競合を回避できます。 [開く]ダイアログボックスを使用して2番目のブックをロードしないでください。代わりに、Windowsでブックのアイコンをダブルクリックします。

この方法でブックを開くことを忘れない場合、他の唯一のオプションはマクロへの変更を開始することです。簡単な変更は、ショートカットキーが同じにならないように変更することです。各マクロの先頭にコードを追加することで、同じショートカットキーを維持できます。各マクロにアクティブなブックの名前を確認してもらいます。名前がそのマクロの予想される名前と一致する場合、コードは実行を継続できます。一致しない場合、コードは他のブックをアクティブにして、そのブックでマクロを直接実行できます。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2872)は、Microsoft Excel 97、2000、2002、および2003に適用されます。