アプリ版:「スタンプのみでお礼する」機能のリリースについて

【やりたい事】
メモ帳やホームページを手動でコピペします
その後、コピペしたデータを、以下のマクロを利用して、A1セルを起点に貼付します

【疑問】
しかし、下のコードで上のものは動きますが
下のものは動きません。少しでも、コードの行を減らしたく下を考えましたが、動きません。

まぜ、下のコードは動かないのか、ご存じの方、教えて下さい


【動くコード】
Sub コピーしてユニコードとして貼付()


Workbooks("貼付.xlsx").Worksheets("Sheet1").Range("A1").Select


ActiveSheet.PasteSpecial Format:="Unicode テキスト"


End Sub


【動かないコード:エラーとなります】

Sub コピーしてユニコードとして貼付()

Workbooks("貼付.xlsx").Worksheets("Sheet1").Range("A1").PasteSpecial Format:="Unicode テキスト"


End Sub

A 回答 (2件)

こんばんは



>まぜ、下のコードは動かないのか、ご存じの方、教えて下さい
エラー内容の記載がありませんけれど、実行環境は同じとするなら・・

同じ「PasteSpecial」メソッドでも、オブジェクトによって内容が違うからではないでしょうか?
Worksheet.PasteSpecialメソッドにはFormatのパラメータを指定可能ですが、
Range.PasteSpecialメソッドにはFormatというパラメータはありません。
https://learn.microsoft.com/ja-jp/office/vba/api …
https://learn.microsoft.com/ja-jp/office/vba/api …

その他のエラーの可能性としては、
 ・対象ブックが開かれていない
 ・対象シートがアクティブになっていない
なども考えられるかと。
また、コピーされている内容によっては、
 ・Worksheet.PasteSpecialメソッドでエラーが発生する可能性
も考えられます。
(例えば、セルをコピーした状態で実行すれば、エラーになると思います)
    • good
    • 0
この回答へのお礼

fujillin 様
ご指導ありがとうございます。
PasteSpecialメソッドでも、ワークシートやレンジのオブジェクトに
よって、指定できるパラメーターが違うという事で
勉強になりました。

以下、コードに変更でき納得できました。
業務で沢山のエクセルを扱い、開いている事があるため
しっかりと、マクロで指定しておきたいと思ったので
シートが指定できてよかったです。

【改廃後コード】
Sub コピーしてユニコードとして貼付()


Workbooks("貼付.xlsx").Worksheets("Sheet1").Range("A1").Select

Worksheets("Sheet1").PasteSpecial Format:="Unicode テキスト"


End Sub

お礼日時:2023/08/16 09:06

マクロを記録で自動生成されたコードをわからないところは調べながら参考にしたらいいのかもしれない

    • good
    • 1
この回答へのお礼

マクロ記録にて調べるのは有効ですね。ありがとうございました。

お礼日時:2023/08/16 09:07

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

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