4

サード パーティによってパスワードで保護された Excel ブックがあります。そのワークシートでの操作は、ダブルクリックしてフィールドのチェック マークを切り替えることで行われます。このタスクを完了するには 7000 回のダブルクリックが必要になるため、自動化したいと考えています。私の疑いは、ワークシートが BeforeDoubleClick イベントを使用していることです。パスワードの暗号化により、実際の実装が隠されます。

これらの問題を解決するために、パスワードなしで自分のワークシートでテストを実行することから始めました。

Application.DoubleClick を試しました:

Range("B17").Select
Application.DoubleClick

しかし、それは私のイベント コード (Worksheet_BeforeDoubleClick) をトリガーしません。これは、「実際の」ダブル クリックで機能します。

これは、MS によると明らかに設計によるものです: http://msdn.microsoft.com/en-us/library/office/aa220809(v=office.11 ​​).aspx

DoubleClick メソッドでは、このイベントは発生しません。

サブは非公開であるため、サードパーティのイベント コードを直接呼び出すことはできません。これを回避する方法はありますか?

Excel 2003 と 2007 の両方でこれを試しました。

4

1 に答える 1

1

試すことができる回避策は次のとおりです(Excel 2007でこれを試しました)

  1. BeforeDoubleClickイベントを公開します (Sheet1 でこれを使用しました )

    Public Sub Worksheet_BeforeDoubleClick (範囲としての ByVal ターゲット、ブール値としてのキャンセル)

  2. マクロでは、この関数を呼び出すだけです

    Range("B17").Select
    Call Sheet1.Worksheet_BeforeDoubleClick(Selection, False)
    
于 2012-10-08T10:51:55.027 に答える