• 締切済み

エクセル コピー ペースト 形式 すべて  マクロ

エクセルの同じシート内で、セルをコピーし、他のセルにペーストするマクロを利用しております。 Worksheets("data").Range("A45").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False しかし、このマクロでは、ペーストする際に、「形式を選択して貼り付け」の「値」のみが貼り付けられてしまいます。 数式を残した状態でペーストしたいので、「すべて」の状態で貼り付け希望です。 なお、このシートは表示しない状態で使用するため、シートを選んでセルを選択してコピーする方法はできません。(マクロでエラーとなってしまいます。) どうか、よろしくお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

マクロの勉強がマクロの記録にとどまり、VBAのコードなどを見る絶対量が少ないのだろう。 Sub test01() Worksheets("Sheet1").Range("a1:C5").Copy Worksheets("Sheet3").Range("c3") End Sub を良く勉強してみて。 C3は貼り付ける先の左上隅セルで、関数式の番地が相対番地表現だとのそこを起点に式の番地が変化する。 ーー WEBのGoogleなどでの照会は「Copy destination」 参考 http://www.happy2-island.com/excelsmile/smile03/capter01106.shtml

  • emaxemax
  • ベストアンサー率35% (44/124)
回答No.2

> このシートは表示しない状態で使用するため、シートを選んでセルを選択してコピーする方法はできません。(マクロでエラーとなってしまいます。) ご提示の豚切コードではわかりませんが、多分、Selectしてるんじゃないですか? すべて貼り付けでいいなら、クリップボードを経由させる必要も無いので間単に With Worksheets("data") .Range("A1").Copy .Range("A45") End With でOKですよ。Selectしてませんから非表示のシートでも大丈夫です。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

変更前: Paste:=xlPasteValues 変更後: Paste:=xlPasteAll

関連するQ&A

専門家に質問してみよう