Sub Takuhai01()
Dim ws01, ws02 As Worksheet
Dim I, L, lRow As Long
Dim Chiiki, Chiiki_Hit, Size, Size_hit As Range
Dim MyAddress, Mysize, Ryokin As String
Set ws01 = Worksheets("料金表")
Set ws02 = Worksheets("配送データ")
Set Chiiki = ws01.Range("C4:N11") '地域の範囲を設定
Set Size = ws01.Range("B13:B18") 'サイズの範囲を設定
lRow = ws02.Cells(Rows.Count, "A").End(xlUp).Row '配送データA列最終行を取得
For I = 2 To lRow '配送データの最終行まで繰り返す。
MyAddress = ws02.Cells(I, "C") '住所データを取得
MyAddress = Mid(MyAddress, 1, 3) '住所データの先頭から3文字を取得
Mysize = ws02.Cells(I, "D") 'サイズデータを取得
Set Chiiki_Hit = Chiiki.Find(what:=MyAddress, lookat:=xlPart) '住所から地域(都道府県)を検索する(X軸:列)
Set Size_hit = Size.Find(what:=Mysize, lookat:=xlWhole) 'サイズデータからサイズ位置を検索(Y軸:行)
If Chiiki_Hit Is Nothing Or Size_hit Is Nothing Then
Ryokin = "該当なし" '料金表に地域または、サイズが該当しなければ、”該当なし”を表示する。
Else
Ryokin = ws01.Cells(Size_hit.Row, Chiiki_Hit.Column) '地域(X軸)サイズ(Y軸)から料金を取得
End If
ws02.Cells(I, "E") = Ryokin '表から検索された料金を配送料金へ転記
Next I
End Sub
Sub Teikei01()
Dim ws01, ws02 As Worksheet
Dim I, L, lRow, mRow As Long
Set ws01 = Worksheets("定形外郵便")
Set ws02 = Worksheets("配送データ")
mRow = ws01.Cells(Rows.Count, "A").End(xlUp).Row '定型外郵便A列の最終行を取得
lRow = ws02.Cells(Rows.Count, "A").End(xlUp).Row '配送データA列の最終行を取得
For I = 2 To lRow '配送データの最終行まで繰り返す。
For L = 4 To mRow '
If ws02.Cells(I, "D") = ws01.Cells(L, "A") And ws02.Cells(I, "E") = ws01.Cells(L, "B") Then
'規格内外と重量に一致するデータを検索する
ws02.Cells(I, "F") = ws01.Cells(L, "C") '料金を代入
Exit For
End If
Next L
If ws02.Cells(I, "F") = "" Then
ws02.Cells(I, "F") = "該当なし"
End If
Next I
MsgBox "定形外郵便計算が完了いたしました。"
End Sub