MENU > HOME VB.NET VB6 VBA ソフトウェア リンク サイト情報
VB.NET> VB.NET 突撃レポート > 1  2  3  4  5  6  7  8  9  10  11  12 
PART1: VS.NET がやってきた! (2003年2月28日)

専門誌の解説のように色々と理論的な事だとか、言語仕様だとかを理解するのも大事だとは思いますが、
VBなどのRADツールの良いところはそんな理屈は後回しにしてもそれなりのアプリケーションを作れるというもののはずですから
(それ以前に私はそんな専門的な事はわかりませんし)、

まずは何も考えずにいきなり何か作ってみることにします。(当たって砕けろ!です。)

メニューより、ファイル-->新規作成-->プロジェクトと選択していくと、下記のようなダイアログが表示されます。
このダイアログはVS6のVID(Visual InterDev)等と同じですね。

次にプロジェクトの種類でVisual Basic プロジェクトを選択し、テンプレートはWindowsアプリケーションを選択。
プロジェクト名を入力し、OKボタンを押すとコードが自動生成後指定したフォルダ配下にプロジェクト名のフォルダが作成され、そこにソースファイルが作成されます。

では早速、自動作成されたForm1のコードをさ〜っと見てみましょう。
以下のようなコードが生成されたと思います。
Public Class Form1
    Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
    Public Sub New()
        MyBase.New()
        ' この呼び出しは Windows フォーム デザイナで必要です。
        InitializeComponent()
        ' InitializeComponent() 呼び出しの後に初期化を追加します。
    End Sub
    ' Form は dispose をオーバーライドしてコンポーネント一覧を消去します。
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    ' Windows フォーム デザイナで必要です。
    Private components As System.ComponentModel.Container

    ' メモ : 以下のプロシージャは、Windows フォーム デザイナで必要です。
    ' Windows フォーム デザイナを使って変更してください。
    ' コード エディタは使用しないでください。
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        components = New System.ComponentModel.Container()
        Me.Text = "Form1"
    End Sub

#End Region

End Class                

とりあえず、何が何だかわかりませんが、以上の様にこれまでのVBとは違い初期状態でかなりのコードが埋め込まれていることがわかります。
これらのコードがどういったものなのかという説明は後にして、今までどおりのイメージでどんどん使ってみることにしましょう。

それではフォームにボタンを1つ配置してみます。(操作はいままでと同じです。)
さらにこのボタンが押されたらフォームを閉じるという機能をつけてみます。
これもいつものようにボタンコントロールをダブルクリックしてイベントコードを表示させてみましょう。
VB6では

Private Sub Command1_Click()

End Sub

と表示されましたが、

Protected Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button1.Click
        
End Sub

となりました。これも今は特に気にせずに、イベントプロシージャ内にコードを入力してみます。

では、このボタンが押されたら、フォームを閉じ、アプリケーションを終了するという機能を実現しましょう。
いつものように、 Unload Me と記述して...。「あれ!?」
入力したコードが Unload(Me) と変わり、Unloadに下線(本当は波下線)が表示されているではありませんか。

「これって、Office でおなじみの文法エラー表示なのでは?」

爆発したりはしないはずなので、とにかくこのまま実行してみることにします。

「むむっ!やはり...。」

こんなメッセージボックスが表示され、ビルドエラー(コンパイルエラー)が発生していることがわかります。
「今回は食い下がってやる...。」
いいえボタンを押してデバッグを停止し、コードウィンドウに戻ってみましょう。

「あっ!」


画面下のタスク一覧に'unload'という名前は宣言されていませんという行が追加されています。
このように文法エラー等が発生した場合タスク一覧にその内容が追加されるのもVBの新機能のひとつです。
(ちなみにこのタスク一覧の機能は現行のVIDやVJで既に搭載されていました。)
このタスク一覧に追加されたタスクをダブルクリックするとコード内の対象となる行にカーソルが位置付けられます。

さて、Unload は新しいVBではサポートされていないことがわかりました。
では何と書いたらよいのでしょうか...。

「フォームを閉じるんだから、フォーム自身になにかメソッドをもっているのでは!?」

unload(Me)の行を削除し、Meと入力してピリオドを打つことにより、おなじみのインテリセンスを使って何かあたりをつけてみることにします。

なんだか、大量のプロパティやメソッドやらが表示されていきますが...



それらしいのを見つけました!Closeメソッドです。
(多分これに違いない)

Closeを選択すると先ほどの行が

  Me
.Close()

となったと思います。

では早速実行してみます。
果たして結果は〜!

今度はビルドエラーも発生せずに以下のようなフォームが表示されました。

ボタンを押してみます。無事にフォームは閉じられ、アプリケーションは正常終了したようです。

次にボタンの文字列がButton1ではあまりにも格好悪いので、アプリケーションらしく、閉じるに変えてみることにします。

「むむっ! Captionプロパティが無い!」

面倒ですが、プロパティウィンドウに表示されているプロパティの一覧を順に見ていくことにします。
Button1というプロパティ値を持っているプロパティが怪しいはず...。
(Name)とTextにButton1というプロパティ値が入っています。
NameはButtonコントロールの名称なのは以前とは変わらないはずなので、Textプロパティあたりかなぁ...。
とりあえず、変更してみます。

「おおっ!変わった!」

どうやら、従来のLabelやButton(Command)のCaptionプロパティはすべてTextプロパティに統一されたようです。
確かにコントロール毎にTextだったりCaptionだったりするよりTextで統一されていた方がわかりやすいような気がします。
(従来スタイルに慣れまくっている私は今のところ違和感ありありですが。)

ちなみにフォームのCaptionプロパティ(タイトルバーの文字)も今回からはTextプロパティに変更されています。
ですから、従来はタイトルバーの文字列を変更する場合、

  Form1.Caption = "タイトルを変更しました!"

と記述していたものは

  Form1.Text = "タイトルを変更しました!"

となります。

今日の収穫
1.フォームはフォームのCloseメソッドで閉じる。
2.Captionプロパティは廃止され、Textプロパティに統一された。

第1日目は何も考えずにとにかく、「当たって砕けろ!」の精神で進めてみました。
まだほんの最初のちょっとしたところでも色々とつまづいてしまうほど次期VBはかなり手が加えられているという事がわかります。

これから先どうなるんだろうか?だとか、今までのコードはどうなるんだとかたくさんの不安感もありますが、次期VBの良し悪しは別として、最近プログラミングに飽き気味だった私にはそれなりに良い刺激になる(既になっている)事は確かです。

次回ももう少し、現行バージョンとの違いに戸惑いながら、遊んでみることにします。(爆)

Copyright©Sugi. All rights reserved.。