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】
Application【アプリケーション】オブジェクトのInputBox【インプットボックス】メソッドに表示するメッセージを格納する変数「メッセージ」を文字列型(String)で宣言します。


3行目【Dim タイトル As String】
Application【アプリケーション】オブジェクトのInputBox【インプットボックス】メソッドのタイトルに表示するタイトルを格納する変数「タイトル」を文字列型(String)で宣言します


4行目【Dim パーセント As Double】
ユーザがApplication【アプリケーション】オブジェクトのInputBox【インプットボックス】メソッドに入力した、数値の増減の割合を格納する変数「パーセント」を倍精度浮動小数点数型(Double)で宣言します。


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


6行目【メッセージ = “数値の増減率を%で入力してください”】
InputBox【インプットボックス】に表示するメッセージを文字列型変数「メッセージ」に代入します。


7行目【タイトル = “数値シミュレーション”】
Application【アプリケーション】オブジェクトの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行目の「エラー処理」ラベルまで処理がシャンプされ以下の処理を実行して処理を終了します。


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

スポンサーリンク

関連記事・広告