別のワークブックからワークブックにコピーされているワークシートをキャプチャしようとしています。
Workbook_NewSheet
他のブックからシートをコピーすると、イベントが発生しません。 これは、ユーザーが手作業で挿入([挿入] - > [ワークシート]メニューオプション)、またはVBAを使用して新しいシートをThisWorkbook.Worksheets.Add
として追加した場合にのみトリガーされます。Excel VBAのコピー/貼り付けによって追加されるワークシートをキャプチャする方法
私がキャプチャしようとしているのは、基本的に、新しいシートになる貼り付け操作です。
これは、以下のユーザアクションのいずれかからかもしれません:他のブックから(新しいシートを追加します)コントロールキーを保持
- ユーザーコピー、既存のシート 01:別のブック
またはVBAコードを以下のいずれかから
VBA内でこのアクションやマクロの結果をキャプチャする方法がわかっていると、大きな助けになります。
私はこのようなユーザーの操作を避けたくないので(ワークブックを保護したくないので)、データを検証するために貼り付けたシートを処理したいと思います。同じデータを2枚のシートに保存するのではなく、既存のシートを更新します。
これはオプションの可能性があります。ユーザーにいくつかのシートをインポートするオプションを提供したいので、ブックのセキュリティ保護はオプションではありません。古いバージョンのファイルからコピーまたは移動すると、新しいシートが追加されず、代わりに既存のシートが更新されます。コピー/移動されたデータからのデータを含むファイル – Adarsha
"SheetActivateイベントはすべての状況下で発生します" 複数のシートをコピーすると1枚目のシートに1回しか焼き付かれません。 別のシートコレクションを維持するのは苦痛です。 PlyメニューからMove/Copyシートオプションを無効にするように選択したので、ユーザーはファイルのあるバージョンから別のバージョンにシートを移動できません。 また、新しいシートを追加して新しいシートをブロックしました。今のところ、私はそのツールを使い終わっています。しかし、次のバージョンのExcelでは、Joelが長年設計したものよりも、より堅牢なイベントをモーダルにすることを期待しています。 – Adarsha