====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*=
[ Visual Basic.NETに挑戦する No.006 ]  2003/03/12  毎週水曜日
=*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====
勢いで買ってしまったVisual Basic .NETを使って、プログラムを組んでみます。
主にExcelやAccessのVBAしかやったことのない三流プログラマーのKen3が、
がんばって解説します。初心者歓迎です(プロの人は内容が簡単で物足りないかも)
有料版なので遠慮しないでドンドン質問下さいね。
楽しみながら〜一緒にVB.NETを覚えましょう
----------------------------------------------------------------------------

<テキストボックス .MultLineと.Textプロパティ>

どうも、三流プログラマーのKen3です。

飛ばして行く予定が、なかなか進まなくスミマセン。
今回は、やっと値のやり取りで使用するテキストボックスを使ってみます。

┌ ─ ┐│└ ┘を使って、文字列を囲い
┌──────────┐
│文字列を囲ってみたい│
└──────────┘
こんな感じの文字列を作ってみたいと思います。

よく、メルマガでもボタンの説明や、
タイトルの説明でも見るよね。

まぁまぁ。
気楽に読んでください。

/*
 * 1. やりたいこと
*/

VBで楽しく
と
文字列を受け取ったら、
┌──────┐
│VBで楽しく│
└──────┘
と、ワクで囲まれた文字列を作ってみたいです。

画面イメージは、
^^^^^^^^^^^

変換元文字列
[ _______________________ ]

┌──┐
│変換│ のボタンを設置、
└──┘

変換結果
[ _______________________ ]
[ _______________________ ]←複数行入力表示可能なテキストボックスを作成
[ _______________________ ]


操作イメージは
^^^^^^^^^^^^^^
変換元文字列に好きな文字を入力後、
変換のボタンを押す。
すると、変換結果が下のテキストボックスに表示される。
これを自分でコピーして使う(笑)

/*
 * 2.フォームの作成
*/

テキストボックスを貼って、簡単に作成します。
*ここで美的センスが問われるんだけど、まぁいいや(おいおい)

前回までのラベルは、
ユーザーからの入力が無い時に文字列の表示に使っていました。
今回は、ユーザーに入力してもらった値を使用するので、
テキストボックスを使います。



配置後、コントロールの名前を変えます。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
txtMOTO 変換元の文字列を入力するテキストボックス
btnCONV 変換実行ボタン
txtSAKI 変換結果の表示エリア

頭をtxt,btnの3文字にします。
(名称の規則が載ってるページをあとで探そう)

変更方法は簡単で、
コントロールを選択後、オブジェクト名を変更します。
(TextBox1とか自動で付いてるので、変更します)


同様に、btnCONVとtxtSAKIも変更します。

/*
 * 3.MultLineのプロパティをTrueにする
*/

結果の文字列は、下記のように複数行になるので、
┌──────┐
│VBで楽しく│
└──────┘

MultLineプロパティをTrueにします。
^^^^^^^^
方法は、簡単で、コントロールを指定(txtSAKI)、
プロパティの一覧から、
MultLineを探して、Trueにするだけです。


このプロパティがTrueじゃないと、
ワクを縦方向に伸ばせないので、
注意が必要です。

/*
 * 4.ボタンにClickイベントを書く
*/

いよいよ、終盤戦、気合を入れなおして。

次は、ボタンにClickイベントを書きます。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

方法は、簡単で、
ボタンのコントロールをダブルクリックすると、
いきなり
Private Sub btnCONV_Click( ......

End Sub
となり、コードを書き込めます。

/*
 * 5.テキストボックスの値の参照方法、と値の代入
*/

ボタンが押されたら、変換処理を行います。
さてと、あれ?三流君、txtMOTOに入力された値って、どうやって取出すの?
あと、結果をtxtSAKIにいれる時は?

おっと、テキストボックスの値の表現方法ですよね、
これも簡単で、
Me.txtMOTO.Text
か 省略形でそのままtxtMOTOと変数みたいに使えます。

簡単なテストを書くと、
Private Sub btnCONV_Click(ByVal sender As System.Object........
    Me.txtSAKI.Text = Me.txtMOTO.Text & vbCrLf _
                    & "↑の文字数は" & Len(Me.txtMOTO.Text) _
                    & vbCrLf & "です"
End Sub

なんか、思ったより簡単ですよね。
txtSAKI.Text に
txtMOTO.Text & vbCrLf & "↑の文字数は" 
 & Len(txtMOTO.Text) & vbCrLf & "です"
を代入してます。



*そのまま、txtMOTO.Text txtSAKI.Text でも使えるます。
        txtSAKI.Text = txtMOTO.Text & vbCrLf _
                        & "↑の文字数は" & Len(txtMOTO.Text) _
                        & vbCrLf & "です"
とme.が無くてもOKです。

見なれないvbCrLfは改行の定数です。
          ~~~~~~~~~~~~~~~~~~
これで改行され、値を代入すると、txtSAKIに3行文字列が表示されてます。

/*
 * 6.ワクを作成するプログラムを書く
*/
ここまでで、必要な情報がそろったので、
┌──────┐
│VBで楽しく│
└──────┘
のワク作成をしてみたいと思います。

Private Sub btnCONV_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles btnCONV.Click
    Dim i As Integer
    Dim strLINE1 As String '1行目
    Dim strLINE2 As String '2行目
    Dim strLINE3 As String '3行目

    '1行目を作る
    strLINE1 = "┌"  '初めに左上端を代入
    For i = 1 To Len(txtMOTO.Text)  '文字数分─を追加
        strLINE1 = strLINE1 & "─"
    Next i
    strLINE1 = strLINE1 & "┐" '右上端を付ける

    '2行目を作る
    strLINE2 = "│" & txtMOTO.Text & "│" '両端に│を付ける

    '3行目を作る
    strLINE3 = "└"  '初めに左下端を代入
    For i = 1 To Len(txtMOTO.Text)  '文字数分─を追加
        strLINE3 = strLINE3 & "─"
    Next i
    strLINE3 = strLINE3 & "┘" '右下端を付ける

    '結果の代入 各ラインをvbCrLFでつなげただけ
    txtSAKI.Text = strLINE1 & vbCrLf & strLINE2 & vbCrLf & strLINE3

End Sub

もう、ポイントも無いぐらい、
&で文字列をつなげる処理で書きました(笑)

さて、テストしますか。

楽しくプログラム と 入れて、変換ボタンを押す。
あれ?なんか表示が変だ。



短いプログラムでもミスるとは、、、
良く見ろ三流プログラマー、フォントがプロポーショナルだからだよ、
テキストボックスのフォントを等倍に変えてみたら。



あっ、これかぁ。
テキストボックスのフォントプロパティを変えてと、

OKみたいですね。
そんなことであわてるから三流なんだよねキット。



/*
 * 7.終わりの挨拶
*/

今回は、
・テキストボックス、ボタンの配置とテキストボックスマルチライン
・ボタンにイベントを書く
・テキストボックス値の参照、代入
でした。

Forの説明、Len関数の説明無かったですね、
あっ、、、すいません。早いうちにやります。

文字数数えて、プロパティをいじっているだけなんですね。
深く考えないで、なんだぁ〜簡単ジャン程度に思っててください。

次回からコントロールまわりをガーっと飛ばして行かないと、
これがVB.NETだぁ、までの道のりは長そうです。

気長に待てる人は、購読続けて下さい。
*解説、長くかかりそうなので。

補足(連絡用マガジン発行)で、細かく説明を発行します。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

プログラム作りは簡単で面白いなぁと感じるような
解説/メールマガジンを書きたいと思ってます。

よろしくお願いします。

AB型の変わり者、三流プログラマーのKen3でした。