どうも!リョクちゃです。
今回は、消費税の計算をするアプリ(Windowsフォームアプリケーション)を
VB.Netで作成して行く過程で、消費税の計算などを紹介していきます。
初心に戻って簡単なことからはじめていきます。
ちなみに前回はこちら
目次
準備編
VisualStudio2019を使って、Windowsフォームアプリケーションを作成していきます。
最初の手順については、下記記事をご参照ください。
フォームの作成
今回以下のようなフォーム画面を作成していきます。
各番号の割り当てられているコントロールについては、以下の表のとおりとなっています。
No | アイテム | コントロール名 |
---|---|---|
1 | Label | Label1 |
2 | TextBox | TextBox1 |
3 | Label | Label2 |
4 | RadioButton | RadioButton1 |
5 | RadioButton | RadioButton2 |
6 | Button | Button1 |
7 | Label | Label3 |
8 | TextBox | TextBox2 |
実行環境
筆者の実行環境は、
- VisualStudio2019
- Windows 10 64bit
- .Net Framework 4.5.1
になります。
※ Windows7 8 8.1でも動作はできますが、画面デザインの表示が変わるかもしれません。
アプリケーションの目的
税抜き価格と税率を入力および選択し、ボタンを押すことで税込み価格を計算し、
結果を正しく税込み価格に表示ができることを目的とする。
ただし、税込み価格の結果の小数点以下は切り捨てることとする。
プログラム編
入力された値を変数に代入
TextBoxに入力された値を整数型(Integer)の変数に代入します。
1 2 |
' 入力された値を変数に代入 Dim value As Integer = CType(Me.TextBox1.Text, Integer) |
ここではTextBox1に入力された値をString型からInteger型に変換しています。
選択されたラジオボタンの判定
どの税率のラジオボタンが選択されているか、
条件分岐文を使って変数に選択されているラジオボタンの税率を代入します。
条件分岐文にはIf文を使用します。
以下のコードがVB.NetにおけるIf文の基本構文になります。
1 2 3 4 5 6 7 |
If 条件式1 Then ' 処理1 ElseIf 条件式2 Then ' 処理2 Else ' 処理3 End If |
条件式1の解がTrueなら処理1を実行し、Falseなら条件式2の判定を行います。
条件式2の解がTrueなら処理2を実行し、Falseなら処理3を実行します。
これが上記のIf文の処理の流れになります。
ラジオボタンがチェックされているかどうかは、以下の記述で判定することができます。
1 |
RadioButton.Checked = True or False ' ラジオボタンがチェックされていればTrue されていなければFalse |
これをIf文と組み合わせると、
1 2 3 4 5 6 7 |
If RadioButton.Checked = True Then ' 処理1 ElseIf RadioButton.Checked = True Then ' 処理2 Else ' 処理3 End If |
選択されている税率によって変数(Zeiritsu)に税率を代入するので、
処理1or処理2については以下のようになります。
1 2 3 4 5 6 7 8 9 |
If RadioButton.Checked = True Then ' 税率8% Zeiritsu = 0.8 ElseIf RadioButton.Checked = True Then ' 税率10% Zeiritsu = 0.1 Else ' 処理3 End If |
これをコードを短縮する方向で工夫を加えると、
1 2 |
If RadioButton.Checked Then Zeiritsu = 0.8 ' 税率8% If RadioButton.Checked Then Zeiritsu = 0.1 ' 税率10% |
IF文を2つ使うことで、どちらかに当てはまれば税率が変数に代入される処理になります。
ちなみに条件式の結果がTrueの場合は= Trueの記述を省略することができます。
消費税を計算する関数を作成
税込み価格を求めるには、以下の式を使います。
消費税は
でそれぞれ求めることができます。
今回は税込み価格結果として返す関数を作成していきます。
結果を返す関数なので、Functionで作成をします。
基本構文としては、
1 2 3 4 |
Private Function メソッド名 (引数1, 引数2) As 返す型 ' 処理1 Return 返す値 End Function |
引数1には、税抜き価格
引数2には、税率をそれぞれ渡してあげる関数にします。
メソッド名は関数が何をするものなのかわかるような名前にします。
これらを踏まえて、計算する関数を作成していくと以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 |
''' <summary> ''' 消費税を計算し、結果として税込み価格を返す ''' </summary> ''' <param name="value">税抜き価格</param> ''' <param name="zeiritsu">税率</param> ''' <returns></returns> Private Function MathTax(ByVal value As Integer, ByVal zeiritsu As Double) As Integer ' 税込み価格 = 税抜き価格 + 消費税 ' 消費税 = 税抜き価格 × 税率 Return value + Math.Floor(value * zeiritsu) End Function |
Math.Floorメソッドを使用することで、小数点以下を切り捨てています。
計算した結果を金額フォーマットに変換
金額は右から3桁をカンマ区切りで表示されています。
例えば、1000円なら1,000のようになります。
結果をテキストボックスに表示する値は、
金額フォーマットに変換した値を表示してあげます。
フォーマットを変換するには、ToStringメソッドを使用します。
と記述することで3文字ごとにカンマ区切りで表記する形に変換できます。
これを加えてテキストボックスに表示をする処理を記述すると、
1 2 3 |
' 結果TextBox2に表示 ' ToStringメソッドで金額フォーマットに変換 Me.TextBox2.Text = resultTax.ToString("#,0") |
入力値がない場合や選択されていない場合は処理をしない
税抜き価格や税率がない場合は、処理をしないようにしてあげる必要があります。
これには、条件分岐(If文)を使って処理をしないようにします。
1 2 3 4 5 6 7 8 |
' 入力と税率が選択されていなければ、処理をしない。 If Me.TextBox1.Text <> "" And Me.RadioButton1.Checked = True Or Me.RadioButton2.Checked = True Then ' 処理1 End If |
こう書くことで、
税抜き価格と税率が入力もしくは選択されていない場合は処理ができないようにしています。
全体コード
各項目で紹介したコードを組み合わせると以下のコードになります。
これが消費税を計算する上での全体のコードになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
Public Class Zeiritsu Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' 入力と税率が選択されていなければ、処理をしない。 If Me.TextBox1.Text <> "" And Me.RadioButton1.Checked = True Or Me.RadioButton2.Checked = True Then ' 入力された値を変数に代入 Dim value As Integer = CType(Me.TextBox1.Text, Integer) ' 選択された税率を変数に代入 Dim zeiritsu As Double = Nothing If Me.RadioButton1.Checked Then zeiritsu = 0.08 If Me.RadioButton2.Checked Then zeiritsu = 0.1 ' 税込み価格を計算し、結果を変数に代入 Dim resultTax As Integer = MathTax(value, zeiritsu) ' 結果TextBox2に表示 ' ToStringメソッドで金額フォーマットに変換 Me.TextBox2.Text = resultTax.ToString("#,0") End If End Sub ''' <summary> ''' 消費税を計算し、結果として税込み価格を返す ''' </summary> ''' <param name="value">税抜き価格</param> ''' <param name="zeiritsu">税率</param> ''' <returns></returns> Private Function MathTax(ByVal value As Integer, ByVal zeiritsu As Double) As Integer ' 税込み価格 = 税抜き価格 + 消費税 ' 消費税 = 税抜き価格 × 税率 Return value + Math.Floor(value * zeiritsu) End Function End Class |
実行編
作成したコードを実行していきます。
プログラム実行時
税抜き価格と税率を入力or選択時
価格を計算ボタンを押下後
例1
例2
まとめ
消費税の計算をするアプリを作ることができました。
今回の記事では、消費税の計算方法、ラジオボタンでの選択されたボタンの受け取り方や
関数を作成し結果を受け取る方法について簡単に紹介していきました。
簡単にアプリケーションを作成して誰かに説明したいときなどに、
この記事が参考になれば嬉しいです。
最後までご覧いただきありがとうございます。
・こちらの書籍を参考にVB.Net勉強しています。