- ベストアンサー
コピーした情報を貼り付けたらイベントを発生する方法はあるか?
- ワークシートのイベント一覧を確認したが、Pasteイベントは存在しない。
- すでにコピーした情報を貼り付けた際にイベントが発火する方法はない。
- Pasteイベントがないため、指定したセル番地に関係なく情報を貼り付けるという動作はできない。
- みんなの回答 (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 ' ' ==============================
その他の回答 (1)
- cj_mover
- ベストアンサー率76% (292/381)
こんにちは。 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 ' ' ==============================
お礼
ありがとうございました。
お礼
ありがとうございました。