重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

2つのシートを操作するマクロを書いています。

Worksheets(A).Range("A1").Value = Worksheets(B).Range("A1").Value
Worksheets(A).Range("B1").Value = Worksheets(B).Range("B1").Value
Worksheets(A).Range("C1").Value = Worksheets(B).Range("C1").Value




簡単に書くとこのような感じです。
=の両辺ともうまくWithでまとめてすっきりさせることは可能ですか?

A 回答 (3件)

こんばんは!


No.1さんが仰っている通りです。

どうしてもWithを使うとすれば、1つだけは可能ですので、

Dim wS As Worksheet
Set wS = Worksheets("B")
With Worksheets("A")
.Range("A1") = wS.Range("A1")
.Range("B1") = wS.Range("B1")
.Range("C1") = wS.Range("C1")

 ・
End With

のような感じにすれば少し入力が少なくて済みます。

※ 質問通りなら

Dim j As Long
j = Worksheets("B").Cells(1, Columns.Count).End(xlToLeft).Column
Worksheets("A").Range("A1").Resize(, j).Value = Worksheets("B").Range("A1").Resize(, j).Value

とすれば一気に表示されます。
ただ、そんなに単純ではないのでしょうね?m(_ _)m
    • good
    • 0

Worksheets("B")がWorksheets("A")の右隣にあるのなら



With Worksheets("A")
   .Range("A1:C1").Value = .Next.Range("A1:C1").Value
End With
    • good
    • 0

「複数With」は不可能。


変数に入れればいいのでは?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!