• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:すでにコピーした情報を貼り付けたらイベントを発生)

コピーした情報を貼り付けたらイベントを発生する方法はあるか?

このQ&Aのポイント
  • ワークシートのイベント一覧を確認したが、Pasteイベントは存在しない。
  • すでにコピーした情報を貼り付けた際にイベントが発火する方法はない。
  • Pasteイベントがないため、指定したセル番地に関係なく情報を貼り付けるという動作はできない。

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

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.2

#1、cjです。 すみません、編集ミスしました。 コードまるごと 差し換えでお願いします。 ' ' ============================== Private Sub Worksheet_Change(ByVal Target As Range) ' Re8101870_AfterPaste ' ' 条件分岐   With Application     If .CutCopyMode = xlCopy Then       .EnableEvents = False ' 処理内容によっては必要■ ' '-----------「_AfterPaste イベント」 ?での処理―――---------       MsgBox "_AfterPaste" ' '-------------------------------------------------------       .EnableEvents = True ' ■     End If   End With End Sub ' ' //////////↓Toggle↑//////// Private Sub Worksheet_Change(ByVal Target As Range) ' Re8101870_BeforePaste ' ' 条件分岐   With Application     If .CutCopyMode = xlCopy Then       .EnableEvents = False ' 必須       .Undo ' 一旦、貼付けをキャンセル([元に戻す]) ' '-----------「_BeforePaste イベント」?での処理------------       MsgBox "_BeforePaste" ' '-------------------------------------------------------       Target.PasteSpecial ' あらためて貼付け       .EnableEvents = True     End If   End With End Sub ' ' ==============================

SXFBYFWZBKP
質問者

お礼

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

その他の回答 (1)

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.1

こんにちは。 Paste イベントが無いことはご承知の通りです。 疑似的な対応例を2例挙げておきます。 使えるかどうかは、用途次第ですね。 ただ、コピーモードには対応していますが。 カットモードには対応できません。 # 何か↑方法あった気がしますがテーマと関係ないですし思い出せません。 ///  「シート上でセルの値に関する設定に変更が加えられた時∧コピーモード」 つまり(≒)  「ペーストされた時」 という考え方です。 ' ' ============================== Private Sub Worksheet_Change(ByVal Target As Range) ' Re8101870_AfterPaste ' ' If Target.... Then Exit Sub ' その他の条件分岐   With Application     If .CutCopyMode = xlCopy Then       .EnableEvents = False ' 処理内容によっては必要■ ' '――「_AfterPaste イベント」 ?での処理―――       MsgBox "_AfterPaste" ' '――――――――――――――――――――――       Target.PasteSpecial       .EnableEvents = True ' ■     End If   End With End Sub ' ' //////////↓Toggle↑//////// Private Sub Worksheet_Change(ByVal Target As Range) ' Re8101870_BeforePaste ' ' If Target.... Then Exit Sub ' その他の条件分岐   With Application     If .CutCopyMode = xlCopy Then       .EnableEvents = False ' 必須       .Undo ' 一旦、貼付けをキャンセル([元に戻す]) ' '――――「_BeforePaste イベント」?での処理――――       MsgBox "_BeforePaste" ' '―――――――――――――――――――――――――       Target.PasteSpecial ' あらためて貼付け       .EnableEvents = True     End If   End With End Sub ' ' ==============================

SXFBYFWZBKP
質問者

お礼

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

関連するQ&A

専門家に質問してみよう