下記マクロコードについて質問します。 ''在庫管理ブックを開き、「品名」を取得する。 D、K、L列から品名を取得してきますが、 もし仮に、M列、N列からも品名取得したいとなった場合、 どのように変更したらいいでしょうか? Sub test() Dim MyWs As Worksheet, iLastRow As Long Dim iProductLot() As Long, iProductCount() As Long Dim wb As Workbook, ws As Worksheet, iSetRow As Long Dim sProductName() As String Dim ii As Long, jj As Long ''変数を設定する。 Set MyWs = ActiveSheet iLastRow = MyWs.Cells(MyWs.Rows.CountLarge, "C").End(xlUp).Row ReDim iProductLot(iLastRow) ReDim iProductCount(iLastRow) ''在庫管理ブックを開き、「品名」を取得する。 Application.ScreenUpdating = False Set wb = Workbooks.Open("C:\Users\k\OneDrive\デスクトップ\在庫管理.xlsm", 0, True) Set ws = wb.Sheets("在庫") iSetRow = ws.Cells(ws.Rows.CountLarge, "D").End(xlUp).Row ReDim sProductName(iSetRow) For ii = 5 To iSetRow sProductName(ii) = "☆" & Trim(ws.Cells(ii, "D").Value) _ & "☆" & Trim(ws.Cells(ii, "K").Value) _ & "☆" & Trim(ws.Cells(ii, "L").Value) & "☆" Next ii ''「品名」行数分を繰り返し、LOT&数量を設定する。 MyWs.Activate For ii = 5 To iLastRow ''「品名」と「重量」が同じ場合に設定する。 For jj = 5 To iSetRow If InStr(1, sProductName(jj), "☆" & MyWs.Cells(ii, "C").Value & "☆") > 0 _ And ws.Cells(jj, "F").Value = MyWs.Cells(ii, "F").Value Then iProductLot(ii) = iProductLot(ii) + 1 iProductCount(ii) = iProductCount(ii) + ws.Cells(jj, "I").Value End If Next jj Next ii ''「在庫管理」ブックを閉じる。 wb.Close False ''結果を設定する。 For ii = 5 To iLastRow If iProductLot(ii) = 0 Then MyWs.Cells(ii, "J").Value = "在庫なし" Else MyWs.Cells(ii, "J").Value = Format(iProductLot(ii), "#,##0") & "LOT(" _ & Format(iProductCount(ii), "#,##0") & "個)" End If Next ii ''変数を開放する。 Application.ScreenUpdating = True Set ws = Nothing Set wb = Nothing Set MyWs = Nothing End Sub
Visual Basic