はじめに
ショートカットキー、便利ですよね。
大抵のソフトウェアには用意されていますし、最近ではオンラインゲームなどでもすばやい操作を行えるようにショートカットキーに対応しているものが多くあります。もちろん、Visual Studio IDE(以下、VS IDE)も例外ではなく、多くのショートカットキーがあらかじめ設定されています。
VS .NET 2003からVS 2005へのバージョンアップの際に、デフォルトの割り当てが一部変更されました。よく使う機能のショートカットキーが変更されてしまったりすると、けっこう不自由な思いをします。
なお、『既定のショートカットキー(全般的な開発設定)』では「……Visual Studio 2003のキーボード マップ スキームで使用できる……」とありますが、実際に紹介されているスキームはVS 2005のものです。
ショートカットキーは、VSコマンドに割り当てることで、自分で自由に設定を追加・変更することもできます。
しかし、どんなVSコマンドが用意されているかの具体的な情報はあまり提供されていません。また、現状どのようなショートカットキーが割り当てられているかは[オプション]ダイアログで、ひとつずつ選択しながら確認するしかありません。
しかも、[オプション]ダイアログで表示されるVSコマンドは日本語名で、MSDN Library内の表記やTemporary Macroで記録されるVSコマンドは英名です。日本語名と英名を関連づける資料は、あちこちを当たってみたのですが、どうもこれといったものを見つけることができませんでした。
そこで本稿では、VSコマンドをより有効に活用し、ショートカットキーを確認・設定しやすくするために、VSコマンドとショートカットキーの一覧表を作成してみます。
VS IDEを操作するテクノロジーとしてはVSアドインが一般的ですが、今回は簡単に作成・実行ができるVSマクロを使います。
対象読者
- VS IDEで作業をされる方、自分好みにカスタマイズして効率よく作業をしたい方。
- Visual Basic 2003または2005の基礎を知っている、あるいは知りたい方。
必要な環境
- Visual Studio .NET 2003、またはVisual Studio 2005 IDEが動作するWindows
- Visual Studio .NET 2003、またはVisual Studio 2005 Standard Edition以上
VSマクロの作り方
VS IDEのマクロ機能は、IDEの動作そのものをカスタマイズできるほど強力なのですが、積極的に使い込んでいる方は意外と少ないようです。まったく使ったことがない、またはTemporary Macroくらいしか使ったことがない、という方も多いのではないでしょうか。
そこで本論に進む前に、VSマクロを作る際の操作を簡単に説明しておくことにします。ご存知の方は、この項を読み飛ばしていただいてかまいません。
新しいVSマクロプロジェクトの作り方
VSマクロプロジェクトの作成や管理、実行などの操作は、VS IDEの中のマクロエクスプローラで行います。
マクロエクスプローラは、VS IDEのメニューから[ツール]-[マクロ]-[マクロエクスプローラ]を選択すると表示されます(既定のショートカットキーでは[Alt]+[F8])。
これから作成するVSマクロ用に、新しいマクロプロジェクトを作成します。新しいVSマクロプロジェクトは、VS IDEのメニューから[ツール]-[マクロ]-[新しいマクロ プロジェクト]で作成できます。
今回は、[ファイル名]を「CreateVSCommandList」として作成します。このファイル名が、そのままプロジェクト名となります。
MyMacrosプロジェクトの中に記述しても同様に動作しますが、ひとかたまりの機能単位でプロジェクトとして作成する方が便利です。
マクロコード記述の始め方
VSマクロは、VS IDEとは別に用意されているマクロIDEでコードを記述します。
マクロIDEは、VS IDEのメニューから[ツール]-[マクロ]-[マクロIDE]で表示させることができます。
このあたりの役割分担は、慣れるまでは戸惑いがちですので、きちんと把握しておきましょう。
マクロIDEのプロジェクトエクスプローラに、現在読み込まれているVSマクロプロジェクトの一覧が表示されます。
VSマクロプロジェクトの[CreateVSCommandList]ノードをダブルクリックすると、プロジェクトを構成している参照設定やモジュールがアイテムとして表示されます。
新しく作成したVSマクロプロジェクトには「Module1」モジュールがあらかじめ用意されているので、本稿で説明するマクロはここに記述することにしましょう。ただし、「Module1」のままでは格好が悪いので、モジュール名を「modCreateVSCommandList」に変更しておきます。
モジュール名を変更するには、目的のモジュール名を右クリックすると表示されるコンテキストメニューから[名前の変更]を選択して書き換えます。
モジュール名を変更し終わったら、その[modCreateVSCommandList]アイテムをダブルクリックしてテキストエディタタブを表示させます。
以上で、マクロコードを記述するための準備は完了です。