VBAソリューションに関する限り、以下はワークシートイベントです。
Excelのクリップボードに貼り付ける前に、ユーザーにメッセージは表示されませんが、複数の行/列/セルを選択しようとしている場合は、そうします。ユーザーエクスペリエンスの観点からは、これで十分です。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode <> False And Target.Cells.Count > 5000 Then
MsgBox "Excel is in cut/copy mode..."
End If
End Sub
これは、警告が発生する各ワークシートに移動する必要があります。
EDIT:OR! ThisWorkBookで以下を使用してください
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Application.CutCopyMode <> False And Target.Cells.Count > 5000 Then
MsgBox "Excel is in cut/copy mode..."
End If
End Sub
EDIT2:上記はアクティブブックのみで動作します。個人的なワークブックで使用するために、ピアソンは、このようなものがすべてのワークブック(マクロ以外のファイルでも)、hereのためにどのように機能するかを説明する良い仕事をしました。 私が期待する大きな変化は、以下に説明するときです。私は今、それをテストすることはできませんが、Workbook_SheetSelectionChange(...)が動作するようになると思います。
Private XLApp As CExcelEvents
Private Sub Workbook_Open()
Set XLApp = New CExcelEvents
End Sub
私は確かに*可愛いですが、それは簡単ではありません。行が挿入されようとしているかどうかを知るためのイベントはありません。おそらく、Excelのメニューをフックする必要があります。これと比較すると、クリップボードの状態を調べることはそれほど難しくありません。 – Comintern
'Ctrl + Z'だと:) – Zac
私は' Application.CutCopyMode <> False'を使うことになると確信しています。イベントが質問です。 – Kevin