エクセルVBAでの紙幣、硬貨
以下は、私たちが紙幣、硬貨に金額を分割エクセルVBAでプログラムを見ていきます。
状況:
ワークシートの変更イベントを作成します。ワークシート上のセルを変更したときに、ワークシート変更イベントに追加されたコードは、Excel VBAで実行されます。
-
Visual Basicエディターを開きます。
プロジェクトエクスプローラでのシート1(シート1)2.ダブルクリックします。
3.左側のドロップダウンリストからワークシートを選択してください。右のドロップダウンリストから、変更を選択します。
ワークシートの変更イベントに次のコード行を追加します。
double型の変数と呼ばれる量とInteger型の変数iを宣言し4。
Dim amount As Double, i As Integer
5.ワークシートの変更イベントは、Sheet1のすべての変更を待機します。私たちは、何かがセルB2に変更した場合、ExcelのVBAで何かをしたいです。これを実現するために、次のコード行を追加します。
If Target.Address = "$B$2" Then
6.私たちは、セルB2の値と可変量を初期化します。
amount = Range("B2").Value
7.私たちは、周波数の範囲を空にします。
Range("B5:B16").Value = ""
8.今、それはお金の入力した金額を分割する時間です。私たちは、次のループの開始します。
For i = 5 To 16
9.我々は、DO Whileループ構造を利用します。これらの単語の間に配置されたコードは長くは事実ですが実行した後一環としてとして繰り返されます。我々は、Excel VBAが長く量が大きいか、または細胞(I、1).VALUEに等しくなるように、ステップ10で、コード行を繰り返したいです。
Do While amount >= Cells(i, 1).Value Loop
-
do-while文に次のコード行を追加します。
Cells(i, 2).Value = Cells(i, 2).Value + 1 amount = amount - Cells(i, 1).Value
説明:限り量が大きいまたはセル(I、1).VALUEに等しいように、量はこの値の紙幣/硬貨を含んでいます。結果として、ExcelのVBAは、この紙幣/硬貨(最初の行)の周波数を増分し、量(第2ライン)から紙幣/硬貨の値を減算します。量は、細胞(I、1).VALUEよりも小さくなるまで、このプロセスが繰り返されます。次に、ExcelのVBAは、Iをインクリメントし、左の量で何回この紙幣/硬貨の適合を確認するために、次の紙幣/硬貨に行きます。もうスプリットに左お金がなくなるまでこの方法では、お金の量は、紙幣、硬貨に分割されます。
11.閉じる次ループの場合とif文(両方の外側のdo-while文)を閉じることを忘れないでください。
Next i End if
12.テストプログラム。
結果:
注:もちろん、入力した金額が、必ずしもすべての紙幣/硬貨が含まれていません。量がある紙幣/硬貨が含まれていない場合は、実行した後の部分は、この紙幣/硬貨やExcelのVBAのために真になることはないものの、次の紙幣/硬貨に直接行きます。