.NET TIPS VBで独自のコード・スニペットを登録するには?[VS 2005のみ、VB]デジタルアドバンテージ 一色 政彦2006/05/19 |
|
|
Visual Studio 2005(以降、VS 2005)には、繰り返し利用するパターン化されたコードを簡単に挿入するための「コード・スニペット」という機能が搭載されている。このコード・スニペット機能に、よく使う独自のコードを登録したいという要望は少なくないだろう。そこで本稿では、独自のコード・スニペットを新たに追加登録する方法を紹介する。
なお、コード・スニペットの基本的な利用方法については、「TIPS:コード・スニペットを素早く挿入するには?」に記述されているので、併せて参照していただきたい。ちなみに、コード・スニペットはVS 2005の全エディションのC#やVisual Basic(以降、VB)で利用できる機能である。
独自のコード・スニペットを登録・利用するためには?
VS 2005では、1つのコード・スニペットは、(基本的に)「.snippet」という拡張子を持つ、1つのXMLファイルで管理される。従って、独自のコード・スニペットを作成するには、このXMLファイルを作成する必要がある。
.snippetファイルはコード・スニペット用のスキーマ(=「コード スニペット スキーマ」)に基づいて作成しなければならないので、手動で作成する*1よりも、.snippetファイル作成用のツールで自動生成する方が便利だ。だが残念ながら、VS 2005では標準でそのようなツールが提供されていないため、サードパーティが提供するツールを使う必要がある。
とはいっても現時点でVS 2005全体(=全言語共通)で使える決定打となるコード・スニペットの編集ツールはまだ存在しないようだ。現時点で筆者が最もお薦めできるのは、C#では「Snippy」、VBでは「Visual Basic Snippet Editor」である(※なお、どちらのツールもC#とVBの両方のコード・スニペットを作成できるのだが、それぞれのツールには向いている言語/向いていない言語という特色があるため、ここではツールを言語ごとに分けた)。
本稿ではこのうちVisual Basic Snippet Editor(以降、Snippet Editor)を使ってVBのコード・スニペットを作成する方法を紹介する。なおC#でコード・スニペットを作成する方法については「TIPS:C#で独自のコード・スニペットを登録するには?」で紹介している。
*1 手動でコード・スニペットを作成するには、VS 2005のIDEでXMLファイルの新規作成を行い(具体的にはメニュー・バーから[ファイル]−[新規作成]−[ファイル]をクリックし、表示される[新しいファイル]ダイアログで「XML ファイル」を作成する)、エディタに開かれたXMLファイルのコード上に「Snippet」という名前のコード・スニペットを挿入すればよい(コード・スニペットを挿入するには、[Ctrl]+[K]キーを押してすぐに続けて[X]キーを押すか、メニュー・バーから[編集]−[IntelliSense]−[スニペットの挿入]を選択すればよい)。 |
Snippet Editorを使ったコード・スニペットの作成
VBでコード・スニペットを作成するには、GotDotNet(米国)のWorkspaces上で開発されているオープンソース・ツールである「Snippet Editor」がお薦めだ。Snippet Editorは、以下のサイトからダウンロードできる(Snippet EditorはMSDNからもダウンロード可能になっているので通常はこちらからダウンロードすればよい)。
MSDNのサイトからツール(のインストーラ)をダウンロード後、(デフォルトの設定のままで)インストールを実行すると、「マイ ドキュメント」フォルダ内の「MSDN\Code Snippet Editor」フォルダにプログラムが配置される。ショートカットなどは作成されないようなので、必要な場合はここから自分で作成しなければならない。Snippet Editorの実体は「SnippetEditor.exe」なので、これをダブルクリックするとアプリケーションが起動する。
■独自のコード・スニペットを格納するフォルダの登録
実際にコード・スニペットを作成する前に、独自のコード・スニペットを格納する場所(フォルダ)をSnippet Editorに登録しておこう。お勧めは次の場所だ(VBの場合)。
<マイ ドキュメント>\Visual Studio 2005\Code Snippets\Visual Basic\My Code Snippets |
というのも、ここに保存しておけば、ほかに何もしなくても、コード・スニペットがすぐに利用できるからだ(これは「My Code Snippets」フォルダがデフォルトでVS 2005のコード・スニペット・ディレクトリとして登録されているためだ)。
これ以外のフォルダにコード・スニペットを保存する場合は、そのフォルダをコード・スニペット・ディレクトリとして登録する必要がある。その方法については、「TIPS:C#でタスク・ベースのコード・スニペットを利用するには?」の「タスク・ベースのコード・スニペットの利用設定と実際の使用」の項目を参考にしてほしい。
次の画面はSnippet Editorを実際に起動して、上記で示したフォルダを登録しているところである。
■独自のコード・スニペットの作成
以上の準備が完了したら、独自のコード・スニペットを作成しよう。次の画面は実際にそれを行っているところだ。Snippet Editorの操作方法については、この画面の説明内容を参考にしてほしい。
Snippet Editorによるコード・スニペットの作成(1) | |||||||||||||||||||||||||||||||||
この画面の例は、MessageBoxクラス(System.Windows.Forms名前空間)の静的なShowメソッド(※2つの文字列をパラメータに取るバージョン)の呼び出しを挿入するコード・スニペットを作成しているところである。なおこの例ではVBコード・スニペットを作成しているが、もちろんXMLなどのコード・スニペットも作成できる(XMLのコード・スニペットはXMLファイル編集用のエディタ上で利用できる)。 | |||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
Snippet Editorによるコード・スニペットの作成(2) | |||||||||||||||||||||||||||||||||
コード・スニペットの変数(=ユーザーが書き換えなければならない部分。[TAB]キーにより移動する部分)を編集しているところ。変数は[Replacements]タブで開かれるページで編集する。 | |||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
Snippet Editorによるコード・スニペットの作成(3) | |||||||||||||||||||||||||||||||||
コード・スニペットで必要となるアセンブリへの参照設定を追加しているところ。参照は[References]タブで開かれるページで編集する。 | |||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
Snippet Editorによるコード・スニペットの作成(4) | |||||||||||||||||||||||||||||||||
コード・スニペットでインポートする必要がある名前空間を追加しているところ。インポートする名前空間は[Imports]タブで開かれるページから編集できる。 | |||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
Snippet Editorによるコード・スニペットの作成(5) | |||||||||||||||||||||||||||||||||
作成したコード・スニペットをテストしてコンパイル可能かを確認し、最終的にファイルに保存しているところ。コード・スニペットのテストは[Test]タブで開かれるページから実行できる。 | |||||||||||||||||||||||||||||||||
|
上記のスコープ(Scope)で指定可能な値の意味は、次の表のとおりである。
Scopeの値 | 説明 |
Class declaration | コード・スニペットがクラス、モジュールもしくは名前空間の内部に挿入される必要があることを示す(実際の値は「type decl」) |
Member declaration | コード・スニペットがクラスもしくはモジュールの内部に挿入されなければならないことを示す(実際の値は「method decl」) |
Member body | コード・スニペットがメソッド内部に挿入される必要があることを示す(実際の値は「method body」) |
Unspecified | コード・スニペットのスコープを指定しないことを意味する |
スコープ(Scope)に指定可能な値の意味 |
実際にはスコープに指定可能な値はこれだけではないのだが、Snippet Editorではこれしか選択できない。これ以外のスコープとして指定可能な値については、次のサイトの「Code要素のKind属性」に関する記述をご参照いただきたい。
VBのコード・スニペットでは、名前空間やアセンブリへの参照も自動的に挿入できる。このため、C#では必要だったSimpleTypeName関数を使った名前空間の挿入の設定などは不要だ(詳しくは「TIPS:C#で独自のコード・スニペットを登録するには?」の「コード・スニペット関数を利用した名前空間の自動省略」の項を参照)。
利用可能バージョン:.NET Framework 2.0のみ カテゴリ:Visual Studio 2005 処理対象:IDE 関連TIPS:コード・スニペットを素早く挿入するには? 関連TIPS:C#でタスク・ベースのコード・スニペットを利用するには? 関連TIPS:C#で独自のコード・スニペットを登録するには? |
|
「.NET TIPS」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|