Sub 自動()
Dim i As Long, j As Long, k As Long
Dim tbl As Variant
Dim stbl As Variant
Dim tmp As String
Application.ScreenUpdating = False
'シートBBを配列に入れる
With Worksheets("AA")
tbl = .Range("A1:E" & .Cells(Rows.Count, 1).End(xlUp).Row)
End With
'シートAAのN列にセット
With Worksheets("BB")
For i = 1 To .Cells(Rows.Count, "D").End(xlUp).Row
For j = 1 To UBound(tbl)
If .Range("D" & i).Value = tbl(j, 1) Then
tmp = .Range("E" & i).Value
stbl = Split(tbl(j, 3), " ")
For k = 0 To UBound(stbl)
Select Case InStr(tmp, "/")
Case 0
If InStr(stbl(k), tmp) > 0 Then
.Range("N" & i).Value = tbl(j, 2)
.Range("O" & i).Value = tbl(j, 4)
.Range("P" & i).Value = tbl(j, 5)
Exit For
End If
Case Else
If InStr(stbl(k), Left(tmp, InStr(tmp, "/") - 1)) > 0 Or _
InStr(stbl(k), Mid(tmp, InStr(tmp, "/") + 1, Len(tmp) - InStr(tmp, "/"))) > 0 Then
.Range("N" & i).Value = tbl(j, 2)
.Range("O" & i).Value = tbl(j, 4)
.Range("P" & i).Value = tbl(j, 5)
Exit For
End If
End Select
Next k
End If
Next j
Next i
End With
Application.ScreenUpdating = True
End Sub
このマクロで、列の変更をしたいのです。
(AA)のシートの変えたい所
D列→B列
E列→C列
N列→L列
O列→M列
P列→N列
(BB)のシートの変えたい所
A列→C列
C列→B列
B列→A列
D列→D列
E列→E列
と変えたいのですがマクロ初心者で作って頂いたものなのでどこをどう変えれば良いのかわかりません。列指定がどれなのかもわからず、できれば解説にて教えて頂けるとありがたいです。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
Sub 自動()
Dim i As Long, j As Long, k As Long
Dim tbl As Variant
Dim stbl As Variant
Dim tmp As String
Application.ScreenUpdating = False
'シートBBを配列に入れる
With Worksheets("BB") ' AA→BB
tbl = .Range("A1:E" & .Cells(Rows.Count, 3).End(xlUp).Row) ' (BB)A列→C列
End With
'シートAAのN列にセット
With Worksheets("AA") ' BB→AA
For i = 1 To .Cells(Rows.Count, "B").End(xlUp).Row ' (AA)D列→B列
For j = 1 To UBound(tbl)
If .Range("B" & i).Value = tbl(j, 3) Then ' (AA)D列→B列、(BB)A列→C列
tmp = .Range("C" & i).Value ' (AA)E列→C列
stbl = Split(tbl(j, 2), " ") ' (BB)C列→B列
For k = 0 To UBound(stbl)
Select Case InStr(tmp, "/")
Case 0
If InStr(stbl(k), tmp) > 0 Then
.Range("L" & i).Value = tbl(j, 1) ' (AA)N列→L列、(BB)B列→A列
.Range("M" & i).Value = tbl(j, 4) ' (AA)O列→M列、(BB)D列→D列
.Range("N" & i).Value = tbl(j, 5) ' (AA)P列→N列、(BB)E列→E列
Exit For
End If
Case Else
If InStr(stbl(k), Left(tmp, InStr(tmp, "/") - 1)) > 0 Or _
InStr(stbl(k), Mid(tmp, InStr(tmp, "/") + 1, Len(tmp) - InStr(tmp, "/"))) > 0 Then
.Range("L" & i).Value = tbl(j, 1) ' (AA)N列→L列、(BB)B列→A列
.Range("M" & i).Value = tbl(j, 4) ' (AA)O列→M列、(BB)D列→D列
.Range("N" & i).Value = tbl(j, 5) ' (AA)P列→N列、(BB)E列→E列
Exit For
End If
End Select
Next k
End If
Next j
Next i
End With
Application.ScreenUpdating = True
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) このマクロの説明文を教えてほしいです。 1 2023/01/12 09:17
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) VBAコードで質問があります 2 2022/10/20 15:27
- Visual Basic(VBA) フォーム上のリストボックスに重複して表示しています 3 2022/10/19 11:55
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたい 6 2023/01/23 12:00
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
「B列が日曜の場合」C列に/...
-
エクセルで最初のスペースまで...
-
VBAで文字列を数値に変換したい
-
エクセルの表から正の数、負の...
-
エクセルの並び変えで、空白セ...
-
エクセル 文字数 多い順 並...
-
エクセル(勝手に太字になる)
-
Excel 別ファイルに自動的に反...
-
Excel、市から登録している住所...
-
Excelで半角の文字を含むセルを...
-
EXCELで 一桁の数値を二桁に
-
A列がない・・・A列が非表示に...
-
文字列に数字を含むセルを調べたい
-
エクセルで文字が混じった数字...
-
2つのエクセルのデータを同じよ...
-
エクセルの項目軸を左寄せにしたい
-
エクセル 同じ値を探して隣の...
-
文字を入力したら数値が自動入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセル 同じ値を探して隣の...
-
エクセル(勝手に太字になる)
-
「B列が日曜の場合」C列に/...
-
エクセル 文字数 多い順 並...
-
EXCELで 一桁の数値を二桁に
-
Excelで半角の文字を含むセルを...
-
エクセルで文字が混じった数字...
-
エクセルの項目軸を左寄せにしたい
-
Excel、市から登録している住所...
-
エクセルで、列の空欄に隣の列...
-
エクセルの表から正の数、負の...
-
エクセルの並び変えで、空白セ...
-
VBAで文字列を数値に変換したい
-
A列がない・・・A列が非表示に...
-
文字列に数字を含むセルを調べたい
-
50人を数回、グループ分けする...
おすすめ情報