木曜日, 8月 13, 2020

Visual Studio Basic_04 
四則演算と通貨表示

プログラムといえば四則演算はつきものです。電卓を作成するという意味ではなく、色々なシーンで計算が発生するからです。そこで今回は簡単な四則演算と計算結果を通貨表示する方法を整理してみました。

用意するのはLabelを5つ、TexBoxを2つ、そしてButtonを1つです。ツールボックスから該当パーツを選択してデザイン画面上で描画します。LabelのAutoSize調整と文字の配置を調整したら、コピー&ペーストで増やしてレイアウトします。なお、今回は[Label]は全てプロパティーの[表示>BorderStyle]にて[FixedSingle]設定して枠を表示させてみました。

レイアウトが完成したら、それぞれのパーツをプロパティーの[Font>Text]にてリネールします。

[単価]や[数量]の文字間隔は単なる全角スペースです。全角スペース2つで4文字の[売上金額]と横幅が揃いますが、あまり神経質になると5文字などのイレギュラーが発生した場合、逆に不自然になりますので、ほどほどがいいですね。

一番最後の[Label1]から[Label5]の位置は自分で把握できる状態にしておかないと後で混乱します。もしリネイムした後で、どれが[Label1]なのか解らなくなってしまったら、プロパティーの[デザイン>(Name)]で確認することが出来ます。ちなみに、ここは本来編集する必要のないソース内容を変更することになるのでので、流れが理解出来ないうちは絶対に変更しないで下さい。

レイアウトが完成したら、あとは[合計金額]をダブルクリックしてソース編集に入ります。もちん後からでもレイアウトは修正出来ます。

流れとしては、TextBox1の値にTextBox2の値を掛けてLael4に入れて表示するとなります。ただし、TextBoxは文字列で数値ではないのでVal関数を使います。

Val関数
指定した文字列に含まれる数字を数値型に変換する関数です。
また四則演算については以下の様なルールになっています。
乗算の[*]はアスタリスク
除算の[/]はスラッシュ

また、四則演算の優先順位は以下の様になっています。
ということで実際のソースコードは以下の様に記述します。

「-----------------」は区切り線なので記述の必要はありません。

-----------------
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        この行に記述します。それ以外は一切変更しません。
    End Sub
End Class
-----------------
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
         Label4.Text = Val(TextBox1.Text) * Val(TextBox2.Text)
    End Sub
End Class
-----------------

デバッグで正しい結果が得られたら、[売上金額]の値を数値表記に変更することにします。

流れとしては、TextBox1の値にTextBox2の値を掛け、新たに設定した変数All_Sumに入れ、Lael4に数値設定したAll_Sumを入れて表示するとなります。

変数の指定はDimで以下の様に設定します。
-----------------
Dim 変数 1 変数 2・・・As 変数の型
-----------------
今回の例で言えば、
Dim All_Sum As Long
となります。
なお、ここで指定した変数の型はどんな正数でもOKとしてLongとしましたか、他には以下の様な変数があります。
具体的なソースの変更は以下の様になります。
-----------------
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        この行に記述を追加します。
        この行に記述を追加します。
        この行に記述を修正します。
    End Sub
End Class
-----------------
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim All_Sum As Long
        All_Sum = Val(TextBox1.Text) * Val(TextBox2.Text)
        Label4.Text = Format(All_Sum, "¥#,###")
    End Sub
End Class
-----------------
※ Visual Studio 2017のBasicでは、¥記号は全角にしないとダメでした。2019以降は半角で問題ないです。(2023/10/12)

デバッグで問題が出なければ完成です。

Visual Studio Basic 2019