Visual Basic 2005 ここが便利!IDE編

第9回 単なるスペル訂正ではないオートコレクトと復活したデザイン時の直接実行!

株式会社ピーデー 川俣 晶
2005/10/05
Page1 Page2

Visual Studio 2005や.NET Framework 2.0の登場とともに、プログラミング言語であるVisual Basic .NETも「Visual Basic 2005」へとバージョン・アップする。この新しいVisual Basicには、言語仕様の面でも統合開発環境の面でも、プログラミングを楽にする新機能が満載だ。本連載ではその中でも特に注目すべき便利な機能を1つずつピックアップしながら紹介していく。

Back Issue
1
“My”はクラスの海からVBプログラマを救う!?
2 型指定されたコレクションを実現するジェネリック
3 自動生成コードを分離、ソースをすっきりパーシャル・クラス
4 Background Workerで夢のマルチスレッドがついに!
5 Usingステートメントで簡単、確実にファイルをクローズ
6 演算子のオーバーロードで独自の型も‘+’で足し算!

7

どう書くんだっけ? を「コード・スニペット」で一発挿入!
8 複雑なオブジェクトもマウスを置くだけで中身が見える! デバッガのデータヒント

オートコレクトでスペルミスを一発訂正

 欧米圏では、「スペルチェッカ」と呼ばれる便利なソフトが一般的に使われている。これは、文章のスペルミスを検出したり、訂正するための候補を提示したりするソフトである。日本語のワープロなどにも文章の記述ミスを検出したり、改善のための提案を行ったりする機能はあるのだが、表記のゆれが小さく単語の区切りも明確な欧米圏の主要な言語の方が、はるかに有意義かつ的確なサービスを提供できるのである。

 さて、日本語の利用者であっても、プログラマという人種にはある種のスペルチェッカは有意義といえる。ソース・コードは、厳密な構文に従って記述されるために、誤りを検出することも容易だからだ。Visual Studio .NET 2003でも、コードの単純な書き間違いは、即座に統合開発環境上で指摘され、気付くことが可能であった。

 しかし、指摘するだけではまだ十分ではない。修正の候補を示し、クリック一発で修正が行われることが理想といえる。そして、Visual Basic 2005(以下VB2005)はついにその境地に達した。新機能の「オートコレクト」がそれである。

 実際、この新しい機能により単純なスペルミスがクリック一発(厳密にいえばクリック2回)で訂正される。その過程を見てみよう。ここではVisual Basic 2005 Express Edition Beta 2 日本語版を使用している。

 まず、「Integer」というキーワードを誤って「e」を抜いてしまい、「Intger」と書いてしまったとしよう。

「Integer」を誤って「Intger」と記述した場合
青い波線により問題のある個所が示されるのはVisual Studio .NET 2003と同じだが、「r」の部分には赤い印が付けられている。

 誤ったキーワード(Intger)の下に引かれた青い波線が、問題の所在を伝えてくれているのは、Visual Studio .NET 2003の場合と同じである。

 しかし、異なっているのは「r」の下に赤い印が見えるところだ。ここにマウスポインタを当てると、以下の画面のように修正候補が存在することが伝えられる。

「r」の下の赤い印にマウスを移動した場合に表示される!マーク
この!マークは入力ミスに対する修正候補が存在することを示している。

 この“!”マークをクリックしてみよう。あるいは表示されているとおり、キーボードから[Shift]+[Alt]+[F10]を入力してもよい。すると、以下のようにエラーの内容と、その修正候補が一覧表示される。

表示された「Intger」に対する修正候補
!マークをクリックするか、[Shift]+[Alt]+[F10]を入力するとエラーの内容とその修正候補が一覧表示される。

 ここでは、3つの修正候補が提示されている。意図したとおりのIntegerへの変更、符号なし整数型のUIntegerへの書き換え、ポインタ互換の整数型であるIntPtrへの書き換えである。ここでは、1番目の候補が意図したものなので、これをクリックしよう。

 これでソース・コードは訂正される。

オートコレクトにより修正された「Integer」
ちなみに「i」の下に表示されている緑の波線は、宣言した変数が使われていないという警告を示すものなので、この変数を使ったコードを書き込んでいけば自動的に消える。

 このとおり、正しく「Intger」は「Integer」に修正された。それに要したクリック回数はたったの2回である。正しいスペルを調べるためにマニュアルを読む手間も必要ない。実に楽な作業である。

 しかし、この程度の訂正は、ちょっと気の利いたソフトなら提供していてもおかしくない水準といえる。オートコレクト機能の真価は、単なるスペル訂正などではない。そのことを、次に見ていこう。

オートコレクトは名前の不足を補完する

 VB2005のオートコレクトは、単なるスペルの修正機能ではない。実は、ソース・コードの意味を理解し、それに沿った修正候補を提示することができるのだ。

 例えば、初期状態で名前空間名を付けないと使えないクラスを、名前空間名を付けないで記述してしまったとしよう。このようなミスは、System.Text.StringBuilderクラスなどでよく起こる。このStringBuilderクラスは、複数の文字列を素早く連結するためによく使われるにもかかわらず、所属する名前空間が特殊で扱いにくい。

 ここでは、クラス名に名前空間名を付けずに、あるいはSystem.Text名前空間をインポートせずに「StringBuilder」とだけ書いてしまったとしよう。

「StringBuilder」という記述に対して表示される修正候補
クラス名に名前空間名を付けずに、あるいはSystem.Text名前空間をインポートせずに「StringBuilder」とだけ記述しても、それを「Text.StringBuilder」に修正することができる(このプロジェクトでは、デフォルトでSystem名前空間はインポートされている)。

 このような場合、オートコレクトは名前空間名を付けるという修正候補も提示してくれる。この場合にも、最初の修正候補を選んで「Text.StringBuilder」に訂正すれば、正常にビルド可能となる。

 あるクラスが、どの名前空間に所属しているかはしばしば分からなくなることがある。そのような場合でも、オートコレクトが適切な名前空間名を付けた修正候補を提示してくれるので、マニュアルを引くことなく利用が可能となる。実に楽でよいのだが、オートコレクトの機能はもっとすごいのだ。その一例を次に見てみよう。


 INDEX
  Visual Basic 2005 ここが便利!
  第9回 単なるスペル訂正ではないオートコレクトと復活したデザイン時の直接実行!
  1.オートコレクトでスペルミスを一発訂正
    2.復活したデザイン時の直接実行!
 
インデックス・ページヘ  「Visual Basic 2005 ここが便利!」


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メールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH