VB.net/VB2017/VB2019
かんたんな計算プログラムを作る
今回は前回までのおさらいと、少しだけ新しいことを覚えながら簡単な足し算を行えるプログラムを作っていきましょう。
まだ分からないなという方は、前回の「メッセージを表示するプログラム」を何回か作ってみることで、慣れてくるということもありますので試してみて下さい。
作るプログラムの動きをイメージする
今回は2つのテキストボックスに数値を入力して、「実行ボタン」を押すと足し算の結果が表示されるというプログラムです。
イメージできましたでしょうか?
しっかり動作をイメージしてみましょう
動作の例を参考にして、しっかりイメージしてから作るようにしましょう。
2つのテキストボックスに入力します
「実行」ボタンをクリックすると、計算結果が出ます
画面デザインを作る
しっかりと「どんなプログラムを作るか」をイメージすることが出来たら、次は画面をデザインしていきます。
まずは前回に習ったように、画面にコントロールを貼り付けていきます。
このプログラムでは、6つの色々なコントロールを貼り付けています。
それぞれのプロパティを以下の内容で設定してみましょう。
(今回はフォーム画面のプロパティも設定します)
番号 | 種類 | プロパティ | 値 |
---|---|---|---|
1 | TextBox | Name | txtA |
Width | 100 | ||
Height | 19 | ||
Text | ""(カラ文字) | ||
MaxLength | 5 | ||
2 | Label | Text | "+" |
3 | TextBox | Name | txtB |
Width | 100 | ||
Height | 19 | ||
Text | ""(カラ文字) | ||
MaxLength | 5 | ||
4 | Label | Text | "=" |
5 | Label | Name | lblAns |
AutoSize | False | ||
BorderStyle | Fixed3D | ||
Width | 130 | ||
Height | 19 | ||
Text | ""(カラ文字) | ||
6 | Button | Name | btnExec |
Width | 100 | ||
Height | 30 | ||
Text | "実 行" | ||
フォーム画面 | Form | Width | 470 |
Height | 165 | ||
Text | Sample1 |
最後にコントロールの配置をちょうど良いと思う感じに調整してください。
コードを記述してみる
デザインのフォーム画面で「実行」ボタン(btnExec)をダブルクリックして、コードエディターを開きます。
自動で追加されたbtnExec_Clickメソッドの中に以下のコードをコピーしてみてください。頑張る方は自分で入力してみるのも良いと思います。
記述するコード
Dim intCalc As Integer 'txtAの入力チェック If txtA.Text = "" Then 'メッセージ表示 MsgBox("入力してください") '処理終了 Exit Sub End If 'txtBの入力チェック If txtB.Text = "" Then 'メッセージ表示 MsgBox("入力してください") '処理終了 Exit Sub End If '計算処理 intCalc = CInt(txtA.Text) + CInt(txtB.Text) '計算結果をラベルに表示 lblAns.Text = CStr(intCalc)
コピーできたら、最初にイメージした通りにちゃんと動作するか実行して確認してください。
コーディングの解説
今回のコードを解説していきます。
変数を宣言する
Dim intCalc As Integer
変数とは値を入れておく箱のようなものです。
変数を使用するには、変数の名前とどんな型にするかを決めて宣言をしてからでないといけません。
Integer という整数を意味する型で、名前は intCalc という変数を宣言するという意味です。
くわしくはこちらをご覧ください。
メソッドを終了させる命令
'処理終了 Exit Sub
実行されているメソッドを終了するという命令です。
メソッド内の処理を終了しますので、これ以下に記述されている計算する命令などは行われなくなります。
計算する命令
'計算処理 intCalc = CInt(txtA.Text) + CInt(txtB.Text)
これも分解して考えましょう。
まず、CInt は ( ) の中の値を数値型に変換するという命令です。
txtA.Text や txtB.Text は文字列型というタイプですので、計算するために変換を行う必要があります。
もし変換しなければどうなる?
数値型に変換せずに
txtA.Text + txtB.Text
とした場合はどうなるでしょうか?
テキストボックスAに「1」が入っていて、テキストボックスBに「3」が入力されていたとします。
文字列型での + という演算子は、前と後ろを連結させるという意味です。なので、答えは「13」となってしまいます。
ここでは足し算した「4」という答えが欲しいので、やはり変換が必要になってくるという訳です。
残りの部分の
intCalc = 〇〇
というのは、intCalc に〇〇を格納するという意味です。
型変換することにより、無事に計算することの出来たテキストボックスの足し算の答えを intCalc に格納しています。
整数型→文字列型に変換して表示
'計算結果をラベルに表示 lblAns.Text = CStr(intCalc)
計算結果が intCalc という変数に格納されていますので、それを逆に文字列型に変換してラベルのTextプロパティに代入しています。
まとめ
今回は変数や値には型というモノがあるということが分かりました。
そして、違う型同士の間には変換が必要な場合がありましたね。
このあたりが最初に難しいなと思うポイントでもありますが、解決策としては「慣れる」というのが一番だと思います。
今は「自分で作ったプログラムが動いて楽しいな」という嬉しい気持ちを大切にしてほしいです。それがモノづくりの楽しさなのですから。