| |
|
.NET TIPS
Visual Basic 2005で名前空間のインポート指定を省略するには?[VS 2005のみ、VB]
デジタルアドバンテージ 遠藤 孝信
2007/09/13 |
 |
|
.NET Frameworkのクラス・ライブラリには膨大な数のクラスが存在するが、これらはすべて名前空間により分類されている。このため、Visual Basic 2005(以下、VB 2005)で、例えばSystem.Text名前空間のStringBuilderクラスを使用するには、以下のいずれかの方法を取る必要がある(2および3の方法では単に「StringBuilder」と記述できる)。
- 「System.Text.StringBuilder」とクラス名をフルネームで記述する
- コードの先頭に「Imports System.Text」と記述して名前空間をインポートする
- プロジェクトのプロパティの[参照]タブで「インポートされた名前空間」を指定する
3の方法では、以下のような画面で現在のプロジェクトに対してインポートする名前空間を指定できる。

|
| VB 2005のプロジェクトのプロパティ |
| この画面はWindowsアプリケーションのプロジェクトを新規作成した場合のプロジェクトのプロパティ。インポートする名前空間を[参照]タブで指定できる(赤枠の部分)。いくつの名前空間にはデフォルトでチェックが入れられている。 |
VB 2005では、あらかじめいくつかの名前空間に対してはデフォルトでインポートされている。例えばWindowsフォームのコードで名前空間のインポート指定なしにButtonクラスを直接記述できるのは、ここでSystem.Windows.Forms名前空間がインポート指定されているためだ。
プロジェクト・テンプレートの書き替え
しかし、System.TextやSystem.IOといった比較的よく使用する名前空間についても、プロジェクトを作成するたびにインポートするのではなく、あらかじめインポート指定されていると便利だ。
デフォルトでインポートされる名前空間はプロジェクト・ファイル(.vbprojファイル)で記述されているため、そのような設定を行うには、プロジェクト・ファイルの大本となるテンプレートを書き替えて、インポートしたい名前空間の指定を追加しておけばよい。
例えばWindowsアプリケーションの場合には、以下のファイルがプロジェクト・ファイルのテンプレートとしてコピーされるので、これを修正する。
C:\Program Files\Microsoft Visual Studio 8\Common7\IDE
\ProjectTemplatesCache\VisualBasic\Windows\1041
\WindowsApplication.zip\windowsapplication.vbproj
このファイルを開くと、次のようなインポート指定の記述が見つかるはずだ。
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Data" />
<Import Include="System.Drawing" />
<Import Include="System.Diagnostics" />
<Import Include="System.Windows.Forms" />
</ItemGroup>
|
|
| Windowsアプリケーション・プロジェクトのテンプレート(windowsapplication.csproj)におけるインポート指定 |
この<ItemGroup>〜</ItemGroup>の間に<Import>要素で指定されたものが、デフォルトでインポートされる名前空間である。この部分を例えば次のように書き替える。
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Data" />
<Import Include="System.Drawing" />
<Import Include="System.Diagnostics" />
<Import Include="System.Windows.Forms" />
<!-- 追加開始 -->
<Import Include="System.Drawing.Drawing2D" />
<Import Include="System.Drawing.Imaging" />
<Import Include="System.IO" />
<Import Include="System.Net" />
<Import Include="System.Text" />
<Import Include="System.Text.RegularExpressions" />
<Import Include="System.Threading" />
<!-- 追加終了 -->
</ItemGroup>
|
|
| 修正したプロジェクト・テンプレートのインポート指定 |
| 比較的よくインポートされると思われる名前空間を追加記述してみた。 |
これにより、次回にWindowsアプリケーションのプロジェクトを作成したときには、いま追加した名前空間がデフォルトでインポートされているはずだ。つまり、コードでは直接「StringBuilder」と記述できる。
利用可能バージョン:.NET Framework 2.0のみ
カテゴリ:Visual Studio 2005 処理対象:プロジェクト
|
|
|
generated by
|
|
TechTargetジャパン
キャリアアップ

**先週の人気講座ランキング**
〜 Android編 〜