@leeph

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

VBA for文について

VBAにて、D列の商品名とA列の商品名が同じならば、単価*個数=合計が出るコードを書きました。
コード的に、Cells(2,4)・Cells(2,5)・Cells(2,6)の、「2」の部分を1プラスしてあげれば、「もも」以降の合計が出てくれると思うので、、for文・Do Whileを追加しようと思っています。ですが、うまくコードを作れません。

※最終行は、7行目です。キャプチャ.PNG

Sub test3()

Dim h As Long
h = 2

Do While Cells(h, 1).Value <> ""
    If Cells(h, 3).Value = Cells(h, 1).Value Then
        Cells(h, 5).Value = Cells(h, 2).Value * Cells(h, 4).Value
    End If
    h = h + 1

Loop

End Sub

0 likes

1Answer

そもそもの話ですが、単価*個数=合計の計算であればExcelのVLOOKUP関数を使って計算するのはいかがでしょうか?

=VLOOKUP(D2,$A$2:$B$7,2,FALSE)

以下のように、簡単に単価を取得することができます。

image.png

vbaで書きたいのであれば、商品名が一致する単価取得のためのループと1行ずつ計算するループの2重ループが必要だと思います。
コード例は以下のようになると思います。

Sub test3()

Dim h As Long
Dim tanka_row As Long
h = 2

Do While Cells(h, 4).Value <> ""
    tanka_row = 2
    Do While Cells(tanka_row, 1).Value <> ""
        If Cells(h, 4).Value = Cells(tanka_row, 1).Value Then
            Cells(h, 6).Value = Cells(tanka_row, 2).Value * Cells(h, 5).Value
            Exit Do
        End If
        tanka_row = tanka_row + 1
    
    Loop
    
    h = h + 1

Loop
End Sub

image.png

0Like

Your answer might help someone💌