Visual Basic 2005 ここが便利!IDE編

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

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

オートコレクトは正しい構文まで補完する

 オートコレクトは、名前空間名どころか、Visual Basicの構文の一部すら補完する修正候補を提示してくれる。

 例えば、MustOverrideキーワードを付けたメソッドを持つクラスには、MustInheritキーワードを付けねばならないのだが、それを忘れていたとしよう。

 え? MustOverrideもMustInheritも使ったことがない? 何をするキーワードか分からない? この記事は技術解説ではないので詳しい説明は省くが、思い悩まずともVB2005を5年も使えば日常的に使うようになっているだろうと思う。ここでは、必要なキーワードの書き忘れの一例と理解するだけで問題はない。

MustInheritキーワードを記述し忘れた場合の表示
MustOverrideキーワードを付けたメソッド(抽象メソッド)を記述しているため、本来ならばこのクラスにはMustInheritキーワードが必要となる。この場合には、クラス名の最後に赤い印が付く。

 ここで、クラス名(Example)の最後の赤い印にマウスポインタを当て、表示される“!”マークをクリックすると、以下のような修正候補が出てくる。

MustInheritキーワードを忘れた場合の修正候補
オートコレクトはVB2005の文法に照らして何が問題であるかを正しく理解し、それに対応した修正候補を表示する。

 つまり、VB2005の文法に照らして何が問題であるかを正しく理解し、それに対応した修正候補を出しているということである。この修正候補を受け入れれば、以下のように訂正は完了する。

オートコレクトによりMustInheritが追加されたクラス宣言

 この機能は、プロパティの訂正などではもっと高度に機能する。

 例えば、ReadOnlyキーワードが指定されているにもかかわらず、Set……End Set構文が含まれる場合には、文法的な整合性を得るために、「ReadOnlyキーワードを取り除く」「Set……End Set構文を取り除く」という2種類の修正候補が提示される。

 これなどは、完全にソース・コードの修正アシスト機能といってよいだろう。スペルミスの訂正などと同レベルで見ることはとてもできない。言語の構文の微妙なところを知らないままソース・コードを記述する場合には、大きな助けになるだろう。

 今回はVB2005の新機能をもう1つ紹介しておこう。

復活したデザイン時の直接実行!

 BASICという言語には伝統的に「イミディエイト・モード」、つまりプログラムの作成中(=デザイン中。実行中でも中断中でもない)に式を計算したり、プログラム中の機能(メソッドの呼び出しなど)を単独で実行させたりする機能を持っている。

 これは例えば、1行のプログラムも書かないで電卓として使えたり、動作に自信がない機能をそれ単体で動作させて確かめたりといった作業に使用できる。

 実際、Visual Basic 6.0にも、この機能は存在した。実行モードに切り替えることなく計算も可能なら、ソース・コード上の特定のメソッドの呼び出しも可能であった。これを実際に行ってみた例を以下に示す(ウィンドウのタイトルが“[デザイン]”となっているところに注目!)。

Visual Basic 6.0のイミディエイト・モード
プログラムの作成中に式を計算したり、関数を呼び出したりできる。

 しかし、Visual Studio .NET 2003では、この便利な機能がサポートされていない。プログラムの実行を中断しているときにしか式を計算してくれないのである。

Visual Studio .NET 2003のコマンド・ウィンドウのイミディエイト・モード
Visual Studio .NET 2003では、プログラムの中断中にのみ、コマンド・ウィンドウのイミディエイト・モードで式の計算などが可能となっている。画面はデザイン中にコマンド・ウィンドウで式を計算しようとしたところ。

 この制約は、VB2005で取り払われた。その証拠が以下の画面だ。

VB2005のイミディエイト・ウィンドウ
VB2005では、コードの作成中にもイミディエイト・ウィンドウが利用でき、式を計算したり、メソッドを呼び出したりできる。

 メソッド呼び出しなどは、プログラムをコンパイルしてから実行するため、[Enter]キーを押してから結果が表示されるまでに少し待ち時間が発生するという点で、Visual Basic 6.0とは多少印象が異なる。

 しかし、これは実行時と同じ状態で動作する(評価する)ということを意味するわけで、動作の互換度はより高くなると思われ、必ずしもデメリットともいえないだろう。

 オートコレクトおよびデザイン時の直接実行は、現場での快適さを向上させるのに役立つ優れた機能である。何より、これらの機能を使いこなせば、プログラミングという作業の労力を軽減してくれることは間違いない。いずれも派手ではないが、このようなVB2005の新機能に注目してみるのもよいのではないだろうか?End of Article


 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