Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


45250 / 76732 ←次へ | 前へ→

【36483】Re:初心者なのでおしえてください
回答  クウガ E-MAILWEB  - 06/4/1(土) 16:34 -

引用なし
パスワード
   ▼komoro さん:
こんにちは、クウガです。
まず最初は、マクロの記録から・・・
これはいいことです。
しかしながら、マクロの記録をした後は、
Selectして、Selectして・・・となります。
まず、ここを削りましょう。

Sheets("Sheet2").Range(Cells(AA, 2), Cells(AA, 2)).Copy

Range(Cells(AA, 2), Cells(AA, 2)) は、一つのセルのようですね。
Cells(AA, 2) だけでいいと思います。
それに、コピーでなくてもそのまま値を代入でもよさそうですので、

Sheets("Sheet1").Range("I2") = Sheets("Sheet2").Cells(AA, 2)

With を使ってもまだコンパクトに、
With Sheets("Sheet1")
 .Range("I2") = Sheets("Sheet2").Cells(AA, 2)
End With

どうでしょうか、分かりにくかったでしょうか?
がんばってください。


>コードをコンパクトにしたいのですが
>どなたかご教示お願いいたします。
>
><Sheet1> データ
> A    B    C    D
>3 コード1     コード2     コード3     金額     
>4 1     2     1     33     
>5 1     2     1     34     
> 1     4     1     9     
> 1     3     1     22     
> 2     1     1     100     
> 2     2     1     45     
> 1     3     1     78     
> 2     1     1     67
>
>
><Sheet2> 転記先
> A    B    C
>2 コード1     コード2     金額     
>3 1     2     67     
>4 1     3     100     
> 1     4     9     
> 1     5     0     
> 2     1     167     
> 2     2    45
>
>Sub test()
>Sheets("Sheet1").Select
>  
>Range("J2") = 1 'コード3が1の場合
>    
>  AA = 3
> 
>For i = 1 To 10
>
>  Sheets("Sheet2").Select
>  Range(Cells(AA, 1), Cells(AA, 1)).Select
>
>If Range(Cells(AA, 1), Cells(AA, 1)) > 0 Then
>Selection.Copy
>  Sheets("Sheet1").Select
>  Range("H2").Select 'コード1
>  Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
>    False, Transpose:=False
>  Application.CutCopyMode = False
>  
>  Sheets("Sheet2").Select
>  Range(Cells(AA, 2), Cells(AA, 2)).Select
>  Selection.Copy
>  Sheets("Sheet1").Select
>  Range("I2").Select'コード2
>  Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
>    False, Transpose:=False
>  Application.CutCopyMode = False
>  Range("A1").Select
>  
>  Range("A3:D20").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
>   Range("H1:J2"), CopyToRange:=Range("F3:I3"), Unique:=False
>   'Range("H1:J2")=コード1,コード2,コード3,金額
>   'Range("F3:I3")"=コード1,コード2,コード3,金額
>  
>Sheets("Sheet1").Select
>  Range("k2").Select'金額の計
>  Selection.Copy
>  Sheets("Sheet2").Select
>  Range(Cells(AA, 3), Cells(AA, 3)).Select
>  Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
>    False, Transpose:=False
>  
>  
>  End If
> AA = AA + 1
> Next
>End Sub

1 hits

【36480】初心者なのでおしえてください komoro 06/4/1(土) 12:08 質問
【36483】Re:初心者なのでおしえてください クウガ 06/4/1(土) 16:34 回答
【36484】Re:初心者なのでおしえてください ちゃう 06/4/1(土) 16:45 発言
【36486】Re:初心者なのでおしえてください クウガ 06/4/1(土) 17:21 発言
【36487】Re:初心者なのでおしえてください クウガ 06/4/1(土) 17:31 発言
【36496】Re:初心者なのでおしえてください komoro 06/4/2(日) 7:12 質問
【36497】Re:初心者なのでおしえてください クウガ 06/4/2(日) 8:20 回答
【36518】Re:初心者なのでおしえてください komoro 06/4/2(日) 13:15 質問
【36525】Re:初心者なのでおしえてください Kein 06/4/2(日) 14:05 回答
【36528】Re:初心者なのでおしえてください クウガ 06/4/2(日) 14:32 発言
【36530】Re:初心者なのでおしえてください Kein 06/4/2(日) 14:46 発言
【36533】Re:初心者なのでおしえてください komoro 06/4/2(日) 17:10 発言
【36534】Re:初心者なのでおしえてください Kein 06/4/2(日) 17:32 発言
【36536】Re:初心者なのでおしえてください komoro 06/4/2(日) 19:50 発言
【36537】Re:初心者なのでおしえてください Kein 06/4/2(日) 22:19 発言
【36539】Re:初心者なのでおしえてください komoro 06/4/3(月) 8:15 お礼
【36526】Re:初心者なのでおしえてください クウガ 06/4/2(日) 14:30 回答
【36532】Re:初心者なのでおしえてください komoro 06/4/2(日) 17:06 発言
【36535】Re:初心者なのでおしえてください 白い鳩 06/4/2(日) 18:55 発言
【36540】Re:初心者なのでおしえてください komoro 06/4/3(月) 8:27 お礼

45250 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free