こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel 2007 マクロのIF構文について

Excel 2007 マクロのIF構文について

Sheet1からSheet2にIF構文を使用して、
必要な情報を転記するマクロです。
下記マクロで実現できているのですが、IF構文が多く
もっと効率的なマクロがあるのではないかと考えています。

IF構文が2つありますが、1つにまとめるマクロがありましたら
お教えください。


Sub Rist()
Dim i, j As Long
Dim ws1, ws2 As Worksheet
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
'「Sheet1」シートを更新
Worksheets("Sheet1").Range("A1").ListObject.QueryTable.Refresh BackgroundQuery:=False
'「Sheet1」シートから「Sheet2」シートに転記
For i = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To ws2.Cells(Rows.Count, 13).End(xlUp).Row
'「Sheet1」シートのL列から「Sheet2」シートのS列に転記
If ws2.Cells(j, "M") = ws1.Cells(i, "A") Then
ws2.Cells(j, "S") = ws1.Cells(i, "L")
End If
'「Sheet1」シートのG列から「Sheet2」シートのQ列に転記
If ws2.Cells(j, "M") = ws1.Cells(i, "A") Then
ws2.Cells(j, "Q") = ws1.Cells(i, "G")
End If

Next j
Next i
End Sub

投稿日時 - 2010-09-24 09:14:03

QNo.6204208

すぐに回答ほしいです

質問者が選んだベストアンサー

If ws2.Cells(j, "M") = ws1.Cells(i, "A") Then
ws2.Cells(j, "S") = ws1.Cells(i, "L")
End If
'「Sheet1」シートのG列から「Sheet2」シートのQ列に転記
If ws2.Cells(j, "M") = ws1.Cells(i, "A") Then
ws2.Cells(j, "Q") = ws1.Cells(i, "G")
End If

一つにまとめるのでしたら次のようにしてはどうでしょう。

If ws2.Cells(j, "M") = ws1.Cells(i, "A") Then
ws2.Cells(j, "S") = ws1.Cells(i, "L")
ws2.Cells(j, "Q") = ws1.Cells(i, "G")
End If

投稿日時 - 2010-09-24 09:31:50

お礼

ご回答ありがとうございました。うまくいきました。助かりました。

投稿日時 - 2010-09-24 13:22:03

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問