6
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【VBA】VBEでコードスニペットを扱う仕組み

Posted at

概要

VisualBasicEditor(VBE) にはコードスニペットを扱う機能が搭載されていない。
インテリジェンスは効くが、よく使うまとまった構文を蓄えておいて
使いたいときにすぐ呼び出せるにはどうするか考えた結果、この方法に落ち着いた。

スニペット呼び出し

イミディエイトウィンドウから対象のスニペット関数を実行し、
表示されたコードをエディターに貼り付けて使用する。

9c5we-mvej8.gif

仕組み

スニペット用のモジュールにスニペット関数を作成する

image.png

関数自体はシンプルで、Debug.Print でコードをイミディエイトに表示するだけ。
スニペット用の標準モジュールを作成してその中にまとめておく。
これを個人用マクロブックの xlsb にでも挿しておくと良い。

ポイントは関数の命名規則。

まず先頭はわかりやすく**SNI_**で統一している。
これによって、sni と入力後にCtrl+Spaceで一覧を表示できる。

1_list表示.png

ここに表示されるのは関数名そのものなので、
関数名は内容がわかりやすいようにしておく。

次に、 SNI_ に続く部分はカテゴリーを表記している。
対象とするオブジェクト名 ListObject_ や、
プロシージャテンプレのようなものを入れておく Proc_ など。

これによって多少の絞り込みができるようにしている。
特に使用頻度の高いものは 00_ などつけてリストの上位に出すようにしても良い。

2_絞り込み.png

スニペット関数の作成と管理

スニペット関数を直接書いていくのは非常に大変である。

  • すべての行を Debug.Print "" で囲む必要がある
  • コード内のダブルクォーテーションをエスケープする必要がある
  • モジュールの中に内包してしまうと管理ができなくなってしまう。

そのため、スニペットの管理と作成は専用のブック上で行っている。
カテゴリーと名称も分けておくことで個別の管理も問題ない。

3_管理票.png

素のコードからスニペット関数化を作成する部分と、
スニペットモジュールに反映する処理は自動化している。

6
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?