• ベストアンサー

コピー後に値のみ貼り付け エクセル、VBAの記述について

マクロ初心者です。 エクセルで選択範囲を指定後コピーし、 自動的に別のシートの末尾に貼り付けられるようにしたのですが、 この内容のまま「貼り付け」を「値のみ貼り付け」に訂正する場合 どのように変更すればいいのか、教えてくださると嬉しいです。 宜しくお願いいたします。 Sub 選択範囲をコピー後、指定シートの末尾に貼り付け Worksheets("sheet1").Activate Range("b11:I17").Copy Workbooks("book2.xls").Worksheets("Sheet1").Activate 行 = Range("B1").CurrentRegion.Rows.Count + 1 ActiveSheet.Paste _ Destination:=Workbooks("book2.xls").Worksheets("Sheet1").Range("B" & 行) End Sub

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 以下のように、Copy した後、PasteSpecial メソッドは、Destination を先頭にして書きます。 ActiveSheet.Paste _ Destination:=Workbooks("book2.xls").Worksheets("Sheet1").Range("B" & 行) ↓ Worksheets("Sheet1").Range("B" & 行).PasteSpecial Paste:=xlPasteValues 他の方法もありますが、この方法を覚えておくと便利です。 なお、コピー範囲の点線は、 Application.CutCopyMode = False 'True でも同じ で消えます。慣れれば、別の方法もあるのですが、まず、この方法を習得してください。

aki101437
質問者

お礼

この方法でなんとか解決することが出来ました。 Paste:=xlPasteValuesと Destination:=を同時に使う方法をずっと考えていたので すっきりしました。ありがとうございました。

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

形式を選択して貼り付ける(PasteSpecialメソッド) http://www.moug.net/tech/exvba/0050104.htm

aki101437
質問者

お礼

こんな方法もあるのですね。 勉強になりました。今後参考にさせていただきます。

関連するQ&A