VBAで「メッセージボックス(MsgBox)」を表示する

目安時間:約 3分

前回の「変数を使って合計を計算」のプログラミングにメッセージボックス(MsgBox)を追加して見ましょう。
メッセージボックス(MsgBox)はマクロ終了等で、ユーザーに知らせる時に使ったりします。
【課題】
・数量 * 単価を計算して、金額列に設定
・金額の合計と平均を計算し、メッセージボックス(MsgBox)に表示

【VBA】
ボタンを追加してVBAが実施出来るようにしました。

Sub messagebox()
Dim i As Long
Dim lngTotal As Long
Dim lngCnt As Long
lngTotal = 0
lngCnt = 0
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(i, 4) = Cells(i, 2) * Cells(i, 3)
    lngTotal = lngTotal + Cells(i, 4)
    lngCnt = lngCnt + 1
Next
MsgBox "金額合計:" & lngTotal & vbLf & _
"金額平均:" & lngTotal / lngCnt, _
vbOKOnly, " 計算結果"
End Sub


簡単な説明
・「Dim i As Long」「Dim lngTotal As Long」「Dim lngCnt As Long」が変数です
・「Cells(Rows.Count, 1).End(xlUp).Row」は以前説明をしたのでこちらを御覧ください
・「Cells(i, 4) = Cells(i, 2) * Cells(i, 3)」は、金額の計算
・「lngTotal = lngTotal + Cells(i, 4)」は、各行の金額を足す
・「lngCnt = lngCnt + 1」は、金額平均を求めるためのカウント

あなたのお役に立てるなら、コピーして使用してください。

今後も勉強した内容を記載して行きますので、お役に立てるものがあれば使ってください。

VBA開発もしておりますので開発のご要望があればご連絡をください。

VBA開発依頼受付はこちらから

VBAで「変数を使って合計を計算」する

目安時間:約 3分

プログラミングには、「変数」を必ず使用します。
簡単なプログラミングなら使わないかもしれませんけどね。
なので、変数の使い方は必ず覚えなければなりません。
変数が使えるようになると、プログラミングも組みやすくなりますよ。
では、変数を使うプログラミングの課題を出して勉強して行きましょう。
【課題】
・数量 * 単価を計算して、金額列に設定
・金額列の合計を計算し、最終行の22行目の金額列に設定

【VBA】
ボタンを追加してVBAが実施出来るようにしました。

Sub variable()
Dim i As Long
Dim lngTotal As Long
Dim lastRow As Long
lngTotal = 0
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lastRow
    Cells(i, 4) = Cells(i, 2) * Cells(i, 3)
    lngTotal = lngTotal + Cells(i, 4)
Next
Cells(lastRow + 1, 4) = lngTotal
End Sub


簡単な説明
・「Dim i As Long」「Dim lngTotal As Long」「Dim lastRow As Long」が変数です
・「lastRow = Cells(Rows.Count, 1).End(xlUp).Row」は以前説明をしたのでこちらを御覧ください
・「Cells(i, 4) = Cells(i, 2) * Cells(i, 3)」は、金額の計算
・「lngTotal = lngTotal + Cells(i, 4)」は、各行の金額を足す
・「Cells(lastRow + 1, 4) = lngTotal」は、最終行の22行目の金額列に設定

あなたのお役に立てるなら、コピーして使用してください。

今後も勉強した内容を記載して行きますので、お役に立てるものがあれば使ってください。

VBA開発もしておりますので開発のご要望があればご連絡をください。

VBA開発依頼受付はこちらから

VBAで「If〜ElseIf〜End」と「Select Case〜Case〜End Select」の違いのと使い方

目安時間:約 6分

プログラミングには、書き方は違うが同じ処理をする方法があります。
今回は、その一つとして
If〜ElseIf〜End」と「Select Case〜Case〜End Select」をお伝えします。
使い分けについては、処理の内容を考慮してどちらが良いかを考える必要がありますね
まずは、「If〜ElseIf〜End」のやり方について勉強したことを記載します。
If〜ElseIf〜End」の勉強の課題として下記の条件を設定しました。
【課題】
・昨年比(%)を計算して、それぞれの列に設定
・昨年比の数値により、記号を設定
A : 105%以上
B : 100%以上、105%未満
C : 95%以上、100%未満
D : 90%以上、95%未満
E : 90%未満
※昨年比 = 今年売上 ÷ 昨年売上

【VBA】
ボタンを追加してVBAが実施出来るようにしました。

Sub ElseIf()
Dim i As Long
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(i, 4) = Cells(i, 3) / Cells(i, 2)
    If Cells(i, 4) >= 1.05 Then
        Cells(i, 5) = "A"
    ElseIf Cells(i, 4) >= 1 Then
        Cells(i, 5) = "B"
    ElseIf Cells(i, 4) >= 0.95 Then
        Cells(i, 5) = "C"
    ElseIf Cells(i, 4) >= 0.9 Then
        Cells(i, 5) = "D"
    Else
        Cells(i, 5) = "E"
    End If
Next
End Sub


簡単な説明
・「Cells(Rows.Count, 1).End(xlUp).Row」については、「VBAで「最終行の取得」を使って見よう」を参照してください
・「Cells(i, 4) = Cells(i, 3) / Cells(i, 2)」は、昨年比の計算
・「If Cells(i, 4) >= 1.05 Then」は、昨年比が「A : 105%以上」の場合に、「Cells(i, 5) = "A"」で記号に設定
※以下同じ様に条件を比較して、記号を設定する

それではもう一つの「Select Case〜Case〜End Select」のやり方について勉強したことを記載します。
「Select Case〜Case〜End Select」の勉強の課題として下記の条件を設定しました。
【課題】
・昨年比(%)を計算して、それぞれの列に設定
・昨年比の数値により、記号を設定
A : 105%以上
B : 100%以上、105%未満
C : 95%以上、100%未満
D : 90%以上、95%未満
E : 90%未満
※昨年比 = 今年売上 ÷ 昨年売上
【VBA】
ボタンを追加してVBAが実施出来るようにしました。
※上記の画像と同じ結果となります

Sub Select()
Dim i As Long
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(i, 4) = Cells(i, 3) / Cells(i, 2)
    Select Case Cells(i, 4)
        Case Is >= 1.05
            Cells(i, 5) = "A"
        Case Is >= 1
            Cells(i, 5) = "B"
        Case Is >= 0.95
            Cells(i, 5) = "C"
        Case Is >= 0.9
            Cells(i, 5) = "D"
        Case Else
            Cells(i, 5) = "E"
    End Select
Next
End Sub


簡単な説明
・「Cells(Rows.Count, 1).End(xlUp).Row」については、「VBAで「最終行の取得」を使って見よう」を参照してください
・「Cells(i, 4) = Cells(i, 3) / Cells(i, 2)」は、昨年比の計算
・「Select Case Cells(i, 4)」は、昨年比見て、下記にあるどのCaseに該当するかを見て記号を設定

あなたのお役に立てるなら、コピーして使用してください。

今後も勉強した内容を記載して行きますので、お役に立てるものがあれば使ってください。

VBA開発もしておりますので開発のご要望があればご連絡をください。

VBA開発依頼受付はこちらから

VBAで「IF文」を使って見よう

目安時間:約 2分

VBAで「IF文」を使うやり方について勉強したことを記載します。
「IF文」の勉強の課題として下記の条件を設定しました。
【課題】
・ケース数とバラ数を計算して、それぞれの列に記載
・1ケースに満たない場合は、D列のケース数に"無し"を記載
※ケース入数とは、1ケースに入る数量
※商品1なら、ケース数1、バラ数3となります

【VBA】
ボタンを追加してVBAが実施出来るようにしました。

Sub IF文()
Dim i As Long
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(i, 4) = Int(Cells(i, 2) / Cells(i, 3))
    Cells(i, 5) = Cells(i, 2) - (Cells(i, 4) * Cells(i, 3))
    If Cells(i, 4) = 0 Then
        Cells(i, 4) = "無し"
    End If
NextEnd Sub


簡単な説明
・「Int(Cells(i, 2) / Cells(i, 3))」は、ケース数を算出、小数点以下は表示しない
・「Cells(i, 2) - (Cells(i, 4) * Cells(i, 3))」は、商品数 - (ケース入数 * ケース数)でバラ数を算出
・「If Cells(i, 4) = 0 Then」は、ケース数が0の場合は、「無し」を記載

あなたのお役に立てるなら、コピーして使用してください。

今後も勉強した内容を記載して行きますので、お役に立てるものがあれば使ってください。

VBA開発もしておりますので開発のご要望があればご連絡をください。

VBA開発依頼受付はこちらから

VBAで「掛け算(2重ループ)」を使って見よう

目安時間:約 2分

縦、横の数字を掛け合わせるやり方について勉強したことを記載します。
「掛け算(2重ループ)」の勉強の課題として下記の条件を設定しました。
【課題】
縦、横の数字を掛け合わせ記載する

【VBA】
ボタンを追加してVBAが実施出来るようにしました。

Sub 掛け算()
Dim a As Long
Dim b As Long
For a = 2 To 11
    For b = 2 To 11
        Cells(a, b) = Cells(a, 1) * Cells(1, b)
    Next
Next
End Sub


簡単な説明
・「For」ループ範囲は、縦、横共に2〜11になる
・「Cells(a, 1)」は、行
・「Cells(1, b)」は、列
・「Cells(a, b)」は、掛け算の結果

あなたのお役に立てるなら、コピーして使用してください。

今後も勉強した内容を記載して行きますので、お役に立てるものがあれば使ってください。

VBA開発もしておりますので開発のご要望があればご連絡をください。

VBA開発依頼受付はこちらから

VBAで「最終行の取得」を使って見よう

目安時間:約 2分

行数は随時変化するので、VBAで最終行を取得し、ループする範囲を設定するやり方について勉強したことを記載します。
「最終行の取得」の勉強の課題として下記の条件を設定しました。
【課題】
金額を計算して、D列に設定
※金額 = 商品数 × 単価

【VBA】
ボタンを追加してVBAが実施出来るようにしました。

Sub 金額()
Dim k As Long
For k = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(k, 4) = Cells(k, 2) * Cells(k, 3)
Next
End Sub


簡単な説明
・「Cells(Rows.Count, 1).End(xlUp).Row」は、最終行の取得するのでこの場合は、「21」になる
・「For」ループ範囲は、2〜21になる
・「Cells(k, 2)」は、商品数行
・「Cells(k, 3)」は、単価行
・「Cells(k, 4)」は、金額行

あなたのお役に立てるなら、コピーして使用してください。

今後も勉強した内容を記載して行きますので、お役に立てるものがあれば使ってください。

VBA開発もしておりますので開発のご要望があればご連絡をください。

VBA開発依頼受付はこちらから

VBAで「For~Next」を使って見よう

目安時間:約 2分

VBAで「For~Next」のやり方について勉強したことを記載します。
「For~Next」の勉強の課題として下記の条件を設定しました。
【課題】
販売単価を計算して、D列に設定
※販売単価 = 売上 ÷ 販売数

【VBA】
「販売単価」ボタンを追加してVBAが実施出来るようにしました。

Sub 販売単価()
Dim t As Long
For t = 2 To 11
    Cells(t, 4) = Cells(t, 2) / Cells(t, 3)
Next
End Sub


簡単な説明
・「For t = 2 To 11」は、2行目〜11行目を繰り返す
・「Cells(t, 2)」は、売上行
・「Cells(t, 3)」は、販売数行
・「Cells(t, 4)」は、販売単価行

あなたのお役に立てるなら、コピーして使用してください。

今後も勉強した内容を記載して行きますので、お役に立てるものがあれば使ってください。

VBA開発もしておりますのでご要望があればご連絡をください。

VBA開発依頼受付はこちらから

プロフィール

50歳、派遣社員。いつもいつも派遣切りにビクビクしながら生きています。50歳という大台を迎えると派遣先がほとんどなく、次の派遣先は無いに等しい。でも、家庭を支えなければならない。だから私は、複数の仕事が出来るように在宅ワークが出来るプログラミング、ブログを選択。50歳からフリーランスを目指してプログラミング、ブログを始めました。

私と一緒に始めませんか?

お問い合わせ
プログラミング依頼

 

最近の投稿
アーカイブ

ページの先頭へ