質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

2回答

17170閲覧

ペースト実行時の検出

k1500

総合スコア12

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

1グッド

2クリップ

投稿2020/02/20 06:12

エクセルVBAでペーストが行われた事を検知(Worksheet_Changeの中で)して処理を実行するようなプログラムを考えています。

簡単に調べてはみたのですがペーストの検出方法がよくわかりません。
エクセルのバージョンは2010です。
良いお知恵があればご教示お願いします。

eiden0513👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

セルのコピー ペースト
メモ帳に入力した文字をコピー ペースト
は、テストしました。

試してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) Dim c Set c = CommandBars("Standard").Controls(14) If ListCnt < c.ListCount Then '履歴がふえたら If c.TooltipText = "元に戻す(&U) 貼り付け (Ctrl+Z)" Then MsgBox "貼り付け" End If End If ListCnt = c.ListCount End Sub

Controls(14) の番号は下記コードで「元に戻す??(&U)」を探しました。
環境によっては変わる?かわかりません。

Sub tes_index() Dim c For Each c In CommandBars("Standard").Controls Debug.Print c.Caption & c.Index Next c End Sub

windows10/office365

投稿2020/02/21 04:43

sinzou

総合スコア392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

k1500

2020/02/21 09:12

初歩的な質問で失礼します。 ListCntはどのように取得すればよろしいのでしょうか?
sinzou

2020/02/21 09:38 編集

ListCnt = c.ListCountで前回の履歴数を保存しています。(取得してます) 「If ListCnt < c.ListCount Then '履歴がふえたら」、を入れているかは 貼り付けを2回連続した後、「元に戻す」をした時に一つ前の履歴、貼り付けがTooltipTextにきて、貼り付けと誤認するため、履歴が増えた時の貼り付けを対象とするためです。
guest

0

changeイベントが発生したときに、コピーしたセル範囲が点滅してるかどうかの判定

ExcelVBA

1Private Sub Worksheet_Change(ByVal Target As Range) 2 If Application.CutCopyMode Then 3 MsgBox "ペーストされました。" & Target.Address(False, False) 4 End If 5End Sub

でも、点滅してない貼付もあるから完璧ではないです。

投稿2020/02/20 08:45

mattuwan

総合スコア2163

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

k1500

2020/02/21 09:05

お返事が遅れて申し訳ありません。 こちらの環境で試してみたところ、うまくペーストを検出できました。 大変簡潔で有用なご助言に感謝申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問