Excel VBA 質問スレッド №692 (解決済)

PasteSpecialの構文エラー

投稿者 : VBA初心者     投稿日時 : 2022/05/03(Tue) 12:22:07     OS : 未指定     EXCEL : 未指定
シートのデータを別シートにコピーするVBAを作成しているのですが、
PasteSpecialのところで構文エラーが発生してしまいます。

「.Pastespecial paste:=xlpastevalues」を削除した場合は問題なく動作していることは
確認済みなのですが、付け加えるとエラーが出てきてしまい、
原因としては何が考えられるのでしょうか。

Sub rensyu2()
    Dim ws1, ws2 As Worksheet
    Set ws1 = Worksheets(1)
    Set ws2 = Worksheets(2)
    
    ws1.Range("A1:C5").Copy ws2.Range("A1").Pastespecial paste:=xlpastevalues
End Sub

スポンサーリンク
[返信 1] Re : PasteSpecialの構文エラー
投稿者 : hatena     投稿日時 : 2022/05/03(Tue) 12:30:42
Copy と PasteSpecial は別のメソッドなので1行で書いたらだめです。

あと、Dim ws1, ws2 As Worksheet と書くと ws1 は Variant型変数になります。ちゃんと型指定した方がいいでしょう。

Sub rensyu2()
    Dim ws1 As Worksheet, ws2 As Worksheet
    Set ws1 = Worksheets(1)
    Set ws2 = Worksheets(2)
    
    ws1.Range("A1:C5").Copy
    ws2.Range("A1").Pastespecial paste:=xlpastevalues
End Sub

[返信 2] Re : PasteSpecialの構文エラー
投稿者 : VBA初心者     投稿日時 : 2022/05/03(Tue) 22:01:38
hatenaさん

回答ありがとうございます!
Copyとは別メソッドとのことで改行して記載しないといけないのですね。
ありがとうございました!

■[返信 1] hatenaさん(2022-05-03 12:30:42)の記事
> Copy と PasteSpecial は別のメソッドなので1行で書いたらだめです。

> あと、Dim ws1, ws2 As Worksheet と書くと ws1 は Variant型変数になります。ちゃんと型指定した方がいいでしょう。

> Sub rensyu2()
> Dim ws1 As Worksheet, ws2 As Worksheet
> Set ws1 = Worksheets(1)
> Set ws2 = Worksheets(2)

> ws1.Range("A1:C5").Copy
> ws2.Range("A1").Pastespecial paste:=xlpastevalues
> End Sub

[返信 3] Re : PasteSpecialの構文エラー
投稿者 : VBA初心者     投稿日時 : 2022/05/03(Tue) 22:03:17
hatenaさん

回答ありがとうございます!
Copyとは分けて記載しないといけないのですね。
勉強になりました!ありがとうございます。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-08-02 20:03:18 )
タイトルとURLをコピーしました