個人的にVBE(Visual Basic Editor)でよく使うショートカットをいくつか紹介します。
はじめのうちは使いずらいかもしれませんが、慣れてくると「マウスに手を伸ばして、メニューから選択する」のが煩わしくなりますし、作業効率も上がると思います。
表示
【 Alt + F11 】:VBEを起動・表示する
エクセルからVBEを起動、または表示します。
また、VBEが表示されている状態で入力するとエクセルに切り替わるのですが、こちらの目的では使用しないです。
【 F7 】:コードウィンドウを表示する
コードウィンドウが表示されます。
マクロ作成していて「コードウィンドウ」と「イミディエイトウィンドウ」を行ったり来たりすることはよくあるのですが、そういう時に使っています。
あと、「なんかわからんが、コードウィンドウが隠れてしまった。。」とかいうときにも。
【 Ctrl + G 】:イミディエイトウィンドウを表示する
イミディエイトウィンドウが表示されます。
「イミディエイトウィンドウ」からプロシージャを呼び出したり、ちょっとしたコードを実行したりするときなんかに使います。
【 Shift + F7 】:フォーム(オブジェクト)を表示する
フォーム(オブジェクト)が表示されます。
フォーム作成時はコードエディタとの表示切り替えを頻繁にするのでよく使います。
デバッグ
【 F5 】:プロシージャを実行する
カーソルが位置しているSubプロシージャ、Functionプロシージャが実行されます。
使用必須のショートカットといえるでしょう。
ただし、上の画像にもあるように、「引数のあるプロシージャ」は実行できません。
引数に値を指定しないと実行できないので、当然といえば当然ですね。
【 Alt + D → L 】:コンパイルする
マクロ作成は「コードを書く → コンパイル → マクロ実行 → デバッグ」の繰り返しです。
コンパイルは頻繁に行うので、慣れると便利なショートカットです。
これを紹介しているサイトはあまり見かけないですね。個人的にはよく使うのですが。
ちょっと押しずらいかもしれませんが、結構便利です。
【 Alt + R → R 】:マクロの実行をリセットする
これも紹介されているのを見かけませんが、よく使います。
エラーでマクロが止まったり、ブレークポイントで止めたりしたとき、後続処理を実行せず終了させる場合に使っています。
【 F8 】:ステップイン
これも「F5」と同じようにプロシージャが実行されますが、押すたびに1行ずつ実行されます。
処理を1行ずつ確認したい場合に使いますが、For文などのループに入るとループの回数だけぐるぐるまわることになって、少し面倒なことに。。
そういう時は、後ほど紹介する「Ctrl+F8」でカーソル行まで実行させることで、現在行を飛ばすことができます。
【 Shift + F8 】:ステップオーバー
「F8」と同じように1行ずつ実行されるのですが、プロシージャを呼び出すところで呼び出し先に現在行が移動しません。
呼び出し先の処理を確認する必要がない場合に使うと便利です。
【 Ctrl + Shift + F8 】:ステップアウト
呼び出し先から呼び出し元に現在行が戻ります。
呼び出し先で、現在行以降の確認が不要な場合や、ステップ実行していて間違えて呼び出し先に現在行が移動してしまった場合などに使っています。
【 Ctrl + F8 】:カーソル行の前まで実行する
カーソル行の前までマクロが実行されます。
確認したいところの前まで実行して、以降は「F8」で1行ずつ確認したい場合などに便利です。
ブレークポイントを設定するのと変わりありませんが、ちょっとだけ処理を確認したい場合など、ブレークポイントをわざわざ設定するほどでもない場合に使ったりします。
(確認後にブレークポイントの解除も不要ですし)
【 F9 】:ブレークポイントの設定・解除
1回入力するとブレークポイントを設定、もう1回入力すると解除します。
ブレークポイントをいくつも設定したい場合に便利です。
【 Ctrl + Shift + F9 】:すべてのブレークポイントの解除
デバッグで複数のブレークポイントを設定した場合や、あちこちの離れた場所に設定している場合など、処理の確認後に一つ一つ解除するのは手間なので、そういう時に使うと便利です。
コーディング
【 Ctrl + Space 】or【 Ctrl + J 】:入力候補を表示する
プロシージャ、関数、変数、オブジェクトなどなど、様々なものに対して入力候補が表示されます。
VBEの「編集」メニューを見ると
- 「Crtl+Space」:入力候補
- 「Ctrl+J」:プロパティ/メソッドの一覧
とありますが、どちらも同じような動きするので、特に使い分けてはいません。
「Application」とか「WorksheetFunction」のような長い文字列を入力する場合には入力の手間が省けたり、入力誤りもなくなったりで、とても便利です。
また、「.(ドット)」を入力すると自動で入力候補が表示されますが、これが消えてしまったときにドットの次にカーソルを移動してショートカットを入力すれば、再表示されます。
入力の手間を省きたいところで、とりあえず入力すれば、何かしら出てくる感じです。
個人的には「Ctrl+J」の方が使いやすいです。
【 Ctrl + I 】 :クイックヒントを表示する
関数やメソッドの引数を確認できます。
引数の型とか順番とか、覚えてられませんよね。
それに、引数に続けてカンマ入力すると次の引数が太字になったりもして、分かりやすいです。
変数にカーソルを合わせて入力すると、その型が分かったりもします。
【 Shift + F2 】:定義されている場所へカーソルを移動する
変数、定数、プロシージャなど、それが定義(宣言)されている場所に、カーソルが移動します。
上の画像だと、カーソルが移動することの恩恵が分かりずらいのですが。。
例えば、長ーいプログラムで呼び出し先のプロシージャの処理内容を確認したい場合、プロシージャ名で検索かけたり、コードエディタ右上のプルダウンから探して選択したりすれば、呼び出し先のプロシージャに辿り着けますが、「Shift+F2」なら一発で移動できます。
元の場所に戻るには「Ctrl+Shift+F2」です。
また、定義が別モジュールにあっても移動できるので、これが便利です。
一つ注意点としては、移動に続けてコードを編集?したりすると戻れなくなる時があります。
【 Ctrl + ↓ or ↑】:一つ下、一つ上のプロシージャに移動
長いプログラムでたくさんのプロシージャがある場合などに使っています。
PageUp、PageDownでいいのでは?ってのもあると思いますが、プロシージャ単位で移動できるところは便利です。
【 Ctrl + Y 】:1行削除
それほど頻繁には使いませんが、覚えておくと少しだけ便利です。
まとめ
上記で紹介したショートカット以外にも、いくつかありますが、個人的によく使うものを紹介しました。
冒頭にも書きましたが、慣れてくるとマウスを使うのが煩わしくなってくると思います。
作業効率アップ、時短、楽するためにも、使ってみることをお勧めします。