- 締切済み
CutCopyMode範囲の取得方法について。
Application.CutCopyMode=True時の対象セル範囲を取得したく思っています。 対象セルが記憶されているオブジェクト、または、 CutCopyMode=True時のイベントがわかればよいのですが見つかりません。 只今、SelectionChangeにて一時保管して使用していますが、Mode対象セル範囲を次から次へと変更していくと、この方法では上手く取得できません。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Application.CutCopyMode <> xlCopy And _ Application.CutCopyMode <> xlCut Then Set 一時保管 = Selection End If End Sub イベントまたはオブジェクトご存知の方宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
#1 のWendy02です。補足です。 今自分の書いたものを読んでいて、ミスを発見したのですが、CutCopyMode の点線枠とSelection とは、一致しませんね。ClipBoard に入っているか入っていないかですね。ClipBoard には、Excel用のものと、Windows用のものと、ActiveX コントロールのDataObject の三つがあって、ユーザーが一番使いやすいのは、DataObjectですが、これは、テキストオンリーです。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。Wendy02です。 最初に、 Application.CutCopyMode <> xlCopy And _ Application.CutCopyMode <> xlCut Then ロジックとしては、And じゃなくて、Or じゃないのかなって思いますが、イベント自体が、SelectionChange で、Set 一時保管 = Selection としても、 Dim 一時保管 As Range として、モジュールレベルの変数か、Public としてグローバル変数にしなければ、End Sub でお終いになってしまいますね。 その溜めたものを吐き出す時に、どういうことになるのかっていうことで、入れる方には、イベントは、あまり手順はいらないと思います。あえて必要になるのは、吐き出し時に、Selection 自体をどのように加工するか、ということが重要鍵になるのか、と思います。つまり、同じシート内なら、再び SelectionChange イベントが働いてしまうので、それを回避することも考えなくてはなりません。
お礼
ご回答ありがとう御座います。 参考にさせて頂きます。