特集
Visual Studio .NETベータ2 オーバービュー
6.Visual Basicでのアプリケーション作成の変化
―― VBプログラマから見たVS .NET ――
槙邑 恭介
2001/09/06
→改訂前の記事はこちら
|

|
すでに雑誌などに紹介されているように、次バージョンのVBでは、クラスのサポートやクラスの継承などが導入され、文法が大きく変更される。VS .NETでは、他のプログラミング言語に比べて、VBが最も大きな変更を受けている。従来の独自のVBのランタイム環境から、CLRという共通のランタイム環境に変更されたため、CLRのオブジェクト指向環境に合わせて文法(仕様)の変更が行われている。基本的には、クラスをベースにしたオブジェクト指向型の言語に変化しているのである。ユーザー・インターフェイスを作成するフォームも、System.Windows.Forms.Formというクラスの派生クラスとして生成されている。このクラスの中には“Main( )”というメソッドが含まれており、ここからアプリケーションの実行が開始する。ついにVBも、Mainメソッドでアプリケーションが開始するようになったのである。
旧バージョンのVBのコードは利用できるのか?
試しにVS .NETで、VBのWindowsアプリケーションを選択して新規プロジェクトを生成してみると、従来どおりのフォームにコントロールを貼り付けるスタイルの開発が行なえる。ここで生成されるコードを見た限りでは、従来のVBのコードとの互換性はほとんどないように見える。今後のVBアプリケーションの作成では、オブジェクト指向的な設計を少なからず意識する必要があるだろう。以前のVB 6.0のプロジェクトを開くと、新しいバージョンへの変換を行なう「Visual Basic アップグレード ウィザード」が起動する。ここで必要な設定を行なうと、フォームやソースコードがVB .NETに変換される。変換結果のレポートは、新規に作成されたプロジェクトにHTML形式で格納される。VB 6.0で簡単なプロジェクトを作成し、実際に変換作業を行なってみたが、変換自体はスムーズに行なわれた。ただし現実のVB 6.0のプロジェクトでは、Win32 API呼び出しや、サード・パーティのActiveXコントロールの利用、従来の手法でのデータベース・アクセスなどが含まれており、慎重に変換作業を行なう必要がありそうだ。
Win32 APIの利用
Win32 APIを直接を呼び出すことが比較的簡単に行えるのもVBの特徴であったが、.NETプラットフォームでは、Win32の機能はCLRのクラス・ライブラリにラップされているので、基本的にはWin32 APIを直接呼び出すことはない。ただしCLR上でWin32 APIを呼び出す機能が提供されているので、不可能ではないように思える。どうしても利用したいDLLがある場合などでは、呼び出すことができるのではないだろうか。
COM/ActiveXコントロールの使用
さらに気になるのが、これまでに作成した(もしくはサード・パーティから購入した)ActiveXコントロールが利用できるのかどうかだろう。COMオブジェクトを利用する場合は、メニューから[プロジェクト]−[参照の追加]を選択し[COM]を選択することでラッパー・クラスが生成され、COMオブジェクトの呼び出しが可能になる。さらにActiveXコントロールの場合は、ツール・ボックスから「ツール・ボックスのカスタマイズ」を開いて利用したいコンポーネントを選択すれば、プロジェクトで利用できるようになる。もちろんこれはC#のプロジェクトでも同様である。
 |
ツール・ボックスのカスタマイズ |
従来のActiveXコントロールをここで選択すると、ツール・ボックスからフォームに貼り付けられるようになる
|
試しに、Adobe Acrobatコントロールを追加し、フォームに貼り付けてみたところ、問題なく動作した。
 |
ActiveX用Acrobatコントロールを貼り付けた例 |
AcrobatコントロールのsrcプロパティにPDFを指定すると、内容が表示される。
|
Insider.NET 記事ランキング
本日
月間