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

セル番地は指定せず、どのセルでも、
すでにコピーした情報を貼り付けたらイベントを発生する
ってことはできないでしょうか?

ワークシートのイベントの一覧を見てみましたが
ないようです。

イベントの一覧はこちらです。
Activate
BeforeDoubleClick
BeforeRightClick
Calculate
Change
Deactivate
FollowHyperlink
PivotTableAfterValueChange
PivotTableBeforeAllocateChanges
PivotTableBeforeCommitChanges
PivotTableBeforeDiscardChanges
PivotTableChangeSync
PivotTableUpdate
SelectionChange

この中に、Pasteと言うイベントがないことから、
そのような動作は無理なのでしょうか?

A 回答 (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

' ' ==============================
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/06/02 20:07

こんにちは。


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

' ' ==============================
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/06/02 20:06

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

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


このQ&Aを見た人がよく見るQ&A