マクロの記録と実行に関する問題
以下では、Visual Studio でマクロを記録および実行するときに発生する可能性のある問題について説明します。
マクロの記録に関する問題
マクロの記録時には、環境はユーザーが変更した要素やユーザーが押したキーを追跡し、それらのユーザー入力に基づいてマクロ コードを生成します。 ただし、すべての UI 要素やイベントを記録できるわけではありません。 マクロの記録は次の UI 要素やイベントに限られています。
Visual Studio コード エディターなどのテキスト エディターやコード エディター。
Visual Studio の各コマンドとメニュー項目。 既定では、UI 機能に固有のオートメーション モデルに対してコマンド自体がコードを生成していない場合、Visual Studio は名前でコマンド呼び出しを記録します。
ソリューション エクスプローラーなど、一般的なツリー ビューのツール ウィンドウ。
[項目の追加] ダイアログ ボックス。
[検索] ダイアログ ボックスと [置換] ダイアログ ボックス。
ウィンドウを開いたり閉じたりする場合などの一般的なウィンドウ イベント。
マクロの記録中に、マクロ コードを生成しない環境要素を操作し、ダイアログ ボックスのエディット コントロールにおける編集のように標準の環境コマンドを使用しなかった場合は、マクロは操作したとおりに記録されず、意図したとおりに動作しなくなります。
この場合は、普通、マクロを手作業で編集して必要なコードを作成できます。 この方法の詳細については、「方法: マクロを編集および手入力で作成する」を参照してください。
即時検索 (ISearch) および記録プロジェクトや記録モジュールのユーザー モデルなどの一部のコマンドは、マクロを記録している間は使用不能になります。
コード エディターやテキスト エディターでマクロを記録しているときは、マウス クリックやその他のマウス イベントは記録されません。
注意
VS マクロは、現時点では Windows フォームをサポートしていません。
マクロの実行に関する問題
プロジェクト内のほかのマクロにエラーがある場合など、親プロジェクトをビルドできない場合は、マクロを実行できません。
変数の値は、マクロの実行と実行の間では維持されますが、統合開発環境 (IDE: Integrated Development Environment) のセッションとセッションの間では維持されません。 たとえば、実行のたびにカウンターをインクリメントするマクロの場合、マクロの呼び出しと呼び出しの間については値は保持されますが、Visual Studio IDE を閉じるとその値は失われます。
マクロ エクスプローラーからマクロを実行すると、マクロ エクスプローラーを開く直前に開いていたウィンドウが最後のアクティブ ウィンドウと見なされ、そのウィンドウにフォーカスがあるものとしてマクロが実行されます。 これにより、マクロの動作時にマクロ エクスプローラーのウィンドウ自体が誤ってフォーカスを取得してしまう問題が防止されます。