【Excelマクロ】商品一覧の価格改定を一括で反映するマクロ

商品価格の改定は、業務で頻繁に発生する作業の1つです。

商品コードごとに新価格を反映させる処理を手作業で行うと、手間がかかるだけでなくミスも生まれやすくなります。

そこで今回は、「商品一覧」と「改定リスト」の2つのシートを使い、商品価格を一括で自動反映するマクロをご紹介します。

初めての方にもわかりやすく、比較的シンプルな構成となっています。

商品価格を一括で更新するマクロ

次のマクロでは、「商品一覧」シートのA列にある商品コードをもとに、「改定リスト」シートの新価格をC列に反映します。

Sub UpdatePrice_WithoutDict()

    Dim i As Long
  Dim j As Long
    Dim code As String
    Dim lastRowList As Long
  Dim lastRowUpd As Long

    With Sheets("商品一覧")
        lastRowList = .Cells(.Rows.Count, 1).End(xlUp).Row
        For i = 2 To lastRowList
            code = .Cells(i, 1).Value

            With Sheets("改定リスト")
                lastRowUpd = .Cells(.Rows.Count, 1).End(xlUp).Row
                For j = 2 To lastRowUpd
                    If .Cells(j, 1).Value = code Then
                        Sheets("商品一覧").Cells(i, 3).Value = .Cells(j, 2).Value
                        Exit For
                    End If
                Next j
            End With

        Next i
    End With

    MsgBox "価格の一括更新が完了しました", vbInformation

End Sub

このマクロは、次のようなルールで動作します。

  • 「商品一覧」の商品コード(A列)を1件ずつ確認
  • 「改定リスト」シートで同じコードを検索
  • 一致すれば、新価格(B列)を「商品一覧」のC列へ転記

実際の用途では、100件〜500件程度のデータなら問題なく処理できます。

実装するメリット

このようなマクロを実装することで、次のような利点があります。

  • 手作業による転記ミスを防止できる
  • コードの知識が浅くても理解しやすい構造
  • シート名や列構成を変えれば他の用途にも応用可能

また、のちの運用や処理速度改善を考える際に、Dictionaryを活用するステップに進むこともできます。

まとめ

商品価格の改定処理は、ExcelとVBAで十分自動化が可能です。

  • 手作業での更新ミスをなくせる
  • 数百件の処理ならスムーズに対応可能
  • 初期はDictionaryを使わずシンプルに実装

価格変更のたびに時間がかかっていた作業も、このようなマクロで効率化が図れます。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール