特集
Visual Studio .NETベータ2 オーバービュー

6.Visual Basicでのアプリケーション作成の変化
―― VBプログラマから見たVS .NET ――

槙邑 恭介
2001/09/06

改訂前の記事はこちら

Page1 Page2 Page3 Page4 Page5 Page6 Page7 Page8

 すでに雑誌などに紹介されているように、次バージョンの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を指定すると、内容が表示される。
 

 INDEX
  [特集]Visual Studio .NETベータ2 オーバービュー
    1.Visual Studio .NETの概要
    2.統合開発環境の概要
    3.作成可能なプロジェクト
    4.Windows FormsとWeb Forms
    5.Visual C++でのアプリケーション作成の変化
  6.Visual Basicでのアプリケーション作成の変化
    7.Webアプリケーション開発環境として見たVS .NETとC#


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 記事ランキング

本日 月間