dポイントプレゼントキャンペーン実施中!

またまたお世話になります。「入力」シートから「コピー先」シート
にコピーして貼付したいのですが、コードで記述してうまくいき
ません。すごく簡単なことかと思いますが、まったく解決できず
にいます。何か足りないのでしょうか?よろしくご指導ください。


Sheets("入力").Select
Range("A1:V20").Copy
Sheets("コピー先").Range("A22").PasteSpecial Paste:=xlAll
Application.CutCopyMode = False

A 回答 (3件)

こんなのは:



Sheets("入力").Range("A1:V20").Copy
with Sheets("コピー先")
.Select
.Range("A22").Select
.Paste
end with
    • good
    • 3
この回答へのお礼

ありがとうございました。できました。

お礼日時:2008/05/10 23:11

>Sheets("入力").Select


>Range("A1:V20").Copy
>Sheets("コピー先").Range("A22").PasteSpecial Paste:=xlAll
>Application.CutCopyMode = False

提示のコードのように4行もいりません。

入力シートをアクティブにする必要があるなら、以下の2行でOK。

Sheets("入力").Select
Range("A1:V20").Copy Sheets("コピー先").Range("A22")

入力シートをアクティブにしなくていいなら、以下の1行でOK。

Sheets("入力").Range("A1:V20").Copy Sheets("コピー先").Range("A22")

以上。
 
    • good
    • 0
この回答へのお礼

コードを簡潔にすることは参考書など見ても載っていなく参考になります。ありがとうございました。

お礼日時:2008/05/10 23:18

私の質問を読んだ感じでは


(1)シートのrange(セル範囲)
(2)オートシェイプ
のオブジェクトの捉え方において
質問者は画然と区別できてないのでは。
ーー
Rangeオブジェクトの下の属性をコピーするのが
PasteSpecial Paste:=xlAll であって、
Allには、シートに浮かんだようなShapesは含まれて居ないのでは。
編集ーコピー
編集ー形式を選択して張り付けー全て、で
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
となりました(マクロの記録)
この辺はセルの属性に関することだけです。
ーSub test01()
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 100.25, 40.75, _
72#, 72#).Select
Selection.Copy
ActiveSheet.Paste Destination:=Range("D10")
End Sub
のD10の指定は出来てもShaipsはD10の属性ではありません。
ーーー
別にShapesのオブジェクトを捉えてコピーし貼り付ける必要があります。
    • good
    • 0
この回答へのお礼

ありがとうございました。少し私には難しく思いました。解説していただいたのに申し訳ありません。

お礼日時:2008/05/10 23:15

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A