Excel VBA 数値データをシミュレーションする

スポンサーリンク
スポンサーリンク

数値データをシミュレーションする方法

シミュレーションしたい数値が入力されているセルまたは
セル範囲を選択してマクロを実行すると
インプットボックスが表示されます。
数値の増減率をパーセント単位で
インプットボックスに入力して実行すると
選択範囲の数値が入力された増減率で増減します。

実行イメージ

コード例

Sub シミュレーション()
Dim メッセージ As String
Dim タイトル As String
Dim パーセント As Double
Dim 選択範囲 As Range
   メッセージ = "数値の増減率を%で入力してください"
   タイトル = "数値シミュレーション"
   パーセント = Application.InputBox(メッセージ, タイトル, Type:=1)
If パーセント = 0 Then Exit Sub
   パーセント = 1 + (パーセント / 100)
For Each 選択範囲 In Selection
On Error GoTo エラー処理
   選択範囲.Value = Int(選択範囲.Value * パーセント)
Next
Exit Sub
エラー処理:
   MsgBox "選択範囲に数値以外が含まれています。" & vbCrLf & _
          "処理を中断します。"
End Sub

コードの解説

2行目
【Dim メッセージ As String】

InputBox【インプットボックス】に表示する
メッセージを格納する
変数「メッセージ」を
文字列型(String)で宣言します。


3行目
【Dim タイトル As String】

InputBox【インプットボックス】のタイトルに
表示するタイトルを格納する
変数「タイトル」を
文字列型(String)で宣言します


4行目
【Dim パーセント As Double】

ユーザがInputBox【インプットボックス】に入力した
数値の増減の割合を格納する
変数「パーセント」を
倍精度浮動小数点数型(Double)で宣言します。


5行目
【Dim 選択範囲 As Range】

ユーザーが選択したセルまたはセル範囲を格納する
変数「選択範囲」を
オブジェクト型(Range)で宣言します。


6行目
【メッセージ = “数値の増減率を%で入力してください”】

InputBox【インプットボックス】に表示するメッセージを
文字列型変数「メッセージ」に代入します。


7行目
【タイトル = “数値シミュレーション”】

InputBox【インプットボックス】のタイトルに使用する
文字列を文字列型変数「タイトル」に代入します。


8行目
【パーセント = Application.InputBox(メッセージ, タイトル, Type:=1)】

Application【アプリケーション】オブジェクトの
InputBox【インプットボックス】メソッドを使用して
ユーザーから数値の増減割合の値を受け取り
倍精度浮動小数点数型の変数「パーセント」に代入します。
第1引数のメッセージを設定するPrompt【プロンプト】には
文字列型変数「メッセージ」を設定し
第2引数のタイトルを設定するTitle【タイトル】には
文字列型変数「タイトル」を設定します。
第8引数の入力できるデータ型を設定するType【タイプ】には
1の数値を設定します。


9行目
【If パーセント = 0 Then Exit Sub】

If【イフ】ステートメントを使用して
条件分岐をします。
InputBox【インプットボックス】で受け取った値が格納されている
変数「パーセント」が0だった場合を定義して
0だったときはExit【エクジット】ステートメントを使用して
Sub【サブ】プロシージャを終了します。


10行目
【パーセント = 1 + (パーセント / 100)】

変数「パーセント」の値を100で除算して1を加算した値を
変数「パーセント」に代入します。
例えば変数「パーセント」が10のとき
10/100=0.01+1=1.01になります。


11行目
【For Each 選択範囲 In Selection】

For Each Next【フォアイーチネクスト】ステートメント
を使用して
繰り返し処理の始まりです。
選択されているセルをSelection【セレクション】プロパティで参照し
オブジェクト変数「選択範囲」に順次代入します。


12行目
【On Error GoTo エラー処理】

次のコードでオブジェクト変数「選択範囲」の値が
数値ではない場合エラーが発生するので
エラーが発生した場合のエラー処理を行います。
On Error【オンエラー】ステートメント
GoTo【ゴートゥ】ステートメントを使用して
エラーが発生したら「エラー処理」ラベルがある
16行目まで処理をジャンプします。


13行目
【選択範囲.Value = Int(選択範囲.Value * パーセント)】

ユーザーが選択した範囲が格納されている
オブジェクト変数「選択範囲」の値に
変数「パーセント」を乗算し
Int【イント】関数を使用して
小数点以下を切り捨てて
繰り返し処理の中で選択されている
オブジェクト変数「選択範囲」に代入します。


14行目~15行目
【Next
Exit Sub】

10行目からここまでの処理を
ユーザーが選択したセル範囲分繰り返し
繰り返し処理を抜けたら
Exit【エグジット】ステートメントを使用して
Sub【サブ】プロシージャを終了します。


16行目~19行目
【エラー処理:
MsgBox “選択範囲に数値以外が含まれています。” & vbCrLf & _
“処理を中断します。”
End Sub】

選択範囲のセルの値が数値以外の場合エラーが発生するので
14行目の「エラー処理」ラベルまで処理がシャンプされ
以下の処理を実行して処理を終了します。


以上で
数値データをシミュレーションする方法についての解説を終了します。
ありがとうございました。

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク