.NET TIPS

Visual Basic 2005で名前空間のインポート指定を省略するには?[VS 2005のみ、VB]

デジタルアドバンテージ 遠藤 孝信
2007/09/13

 .NET Frameworkのクラス・ライブラリには膨大な数のクラスが存在するが、これらはすべて名前空間により分類されている。このため、Visual Basic 2005(以下、VB 2005)で、例えばSystem.Text名前空間のStringBuilderクラスを使用するには、以下のいずれかの方法を取る必要がある(2および3の方法では単に「StringBuilder」と記述できる)。

  1. 「System.Text.StringBuilder」とクラス名をフルネームで記述する

  2. コードの先頭に「Imports System.Text」と記述して名前空間をインポートする

  3. プロジェクトのプロパティの[参照]タブで「インポートされた名前空間」を指定する

 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」と記述できる。End of Article

利用可能バージョン:.NET Framework 2.0のみ
カテゴリ:Visual Studio 2005 処理対象:プロジェクト

この記事と関連性の高い別の.NET TIPS
[ASP.NET]ImportCatalogPartコントロールでパーツ情報をページにインポートするには?
プロジェクト名やソリューション名を変更するには?
[ASP.NET]あらかじめ用意したPDF文書をインポートするには?
StringBuilderオブジェクトの文字列をクリアするには?
OSに標準付属のMSBuildツールでプロジェクトをビルドするには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間