横浜国立大学理工学部建築都市環境系学科卒
一級鉄筋技能士
データを前処理するための技術を習得していきましょう。
今回は、変数・条件分岐・繰り返し処理についてです。
ブレイクポイントやウォッチ式、イミディエイトの使い方に慣れてしまえば、chatGPTがコードを生成してくれるので意外に簡単ですよ!
目次
変数について
変数の基本的な形は次の通りです。
1 2 |
Dim 変数名 As 型名 ※変数名は英数字を使用 |
詳しく見ていきましょう。
変数の種類について
変数については型がたくさんあります。
例えば、Object型というものがありますが、わからなければその都度chatGPTに聞いて理解していけばOKでしょう。
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 |
Sub SampleVariables() Dim myInteger As Integer Dim myLong As Long Dim myDouble As Double Dim myString As String Dim myBoolean As Boolean Dim myDate As Date Dim myObject As Object'オブジェクト型とは何だろう?→再度chatGPTで検索 Dim myArray() As Integer myInteger = 42 myLong = 1234567890 myDouble = 3.14 myString = "Hello, VBA!" myBoolean = True myDate = DateSerial(2023, 10, 14) Set myObject = CreateObject("Scripting.FileSystemObject") ReDim myArray(1 To 5) myArray(1) = 10 myArray(2) = 20 ' 他の要素も設定可能 ' メッセージボックスで変数の内容を表示 MsgBox "Integer: " & myInteger & vbCrLf & _ "Long: " & myLong & vbCrLf & _ "Double: " & myDouble & vbCrLf & _ "String: " & myString & vbCrLf & _ "Boolean: " & myBoolean & vbCrLf & _ "Date: " & myDate & vbCrLf & _ "Object Type: " & TypeName(myObject) & vbCrLf & _ "Array Element 1: " & myArray(1) End Sub |
ブレイクポイントとウォッチ式を活用して変数の値を確認する
変数に正常な値が入っているかどうかを調べるために「ブレイクポイント」を活用しましょう。
ブレイクポイントを入れるとコードの実行をその点で止めることができます。
ブレイクポイントで止まった点で変数に入っている値を確認するには、「ウォッチ式」を活用します。
変数(ここではmyInteger)にカーソルを当てながら右クリックで「ウォッチ式の追加」を実行すると、変数の値を確認することができます。
ブレイクポイントの時点ではmyIntegerの変数には値は入っていませんが、F8(ステップイン)で次の行に進むと「42」の変数が入ることがウォッチ式で確認できます。
「? 変数名」をイミディエイトに入力しても良い
変数の値を確認する際は、「? 変数名」をイミディエイトに入力して確認してもOKです。
chatGPTで生成されるコードを動かしてみよう
ブレイクポイント、ウォッチ、イミディエイトの使い方を理解することができました。
あとは、コードを記載して動かすだけです。
今や正しいコードはchatGPTが生成してくれるので、フル活用して実際にコードを動かしてみましょう!
条件分岐 If
繰り返し処理Forの基本的な形は次の通りです。
1 2 3 4 5 6 7 |
If 条件1 then 処理 ElseIf 条件2 then 処理 Else 処理 End if |
「条件」が満たされる(true)の時に「処理」が実行されます。
詳しく見ていきましょう。
bmiの結果から肥満度がわかるようなコードを作成してみる
今回は、条件分岐を用いて、bmiの結果から肥満度がわかるようなコードを作成します。
chatGPTにプロンプトを記載してみます。
以下のコードを取得できました。
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 |
Sub CheckBMI() Dim height As Double'身長の変数 Dim weight As Double'体重の変数 Dim bmi As Double 'BMIの変数 Dim result As String'最終的な結果を文字(string)で表示 ' 身長(cm)と体重(kg)を設定 height = 170 weight = 70 ' BMIを計算 bmi = weight / ((height / 100) ^ 2) ' BMIに基づいて肥満度を判定 If bmi < 18.5 Then result = "低体重" ElseIf bmi >= 18.5 And bmi < 24.9 Then result = "普通体重" ElseIf bmi >= 24.9 And bmi < 29.9 Then result = "肥満(軽度)" ElseIf bmi >= 29.9 And bmi < 34.9 Then result = "肥満(中度)" ElseIf bmi >= 34.9 Then result = "肥満(重度)" End If ' 結果を表示 MsgBox "身長: " & height & " cm" & vbCrLf & "体重: " & weight & " kg" & vbCrLf & "BMI: " & bmi & vbCrLf & "肥満度: " & result End Sub |
実際にコードを動かしてみて、bmiがメッセージボックスで表示されるかどうか確認しましょう。
繰り返し処理 For
繰り返し処理Forの基本的な形は次の通りです。
1 2 3 |
For 変数=開始 to 終了 処理 Next (変数) |
開始から終了まで「処理」が繰り返されるものです。
詳しく見ていきましょう。
1から10の数字を繰り返し表示する処理を記述してみる
1 2 3 4 5 6 7 |
'繰り返し処理の演習 Sub repeat() Dim i As Integer For i = 1 To 10 Debug.Print i Next i End Sub |
まとめ
この記事では、VBAにおける変数の取り扱い方について条件分岐と繰り返し処理の例を用いて紹介しました。
ブレイクポイント、ウォッチ、イミディエイトの使い方がわかればもう怖くありませんね!