0

BeforeDoubleClick手順を使用して、Excel 2010 でマクロをトリガーしようとしています。ただし、機能していないようです。他の人が同じ問題を抱えているかどうかを広範囲に検索しましたが、いくつかはありましたが、解決策を試してみましたが、適用できないか、機能しませんでした. コードは非常に単純です。コードをテストするためにコードを取り除いているからです。(私はスタックと VB 初心者なので、しばらくお待ちください)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Value = "GO" Then Cancel = True
    MsgBox ("done")
End Sub

「Application.EnableEvents = True」を即時ウィンドウに配置して、パブリックサブに設定しようとしました。ブックは、すべてのマクロを有効にするように設定されています。アドインは実行されていません。私は XLSTART フォルダを調べましたが、すべて空です。誰かが提案したように、ある時点でデジタル署名さえ作成しました。以前のバージョンの Excel との互換性の問題が原因でしょうか?

また、cancel = True であってもワークシートをダブルクリックすると、セルは通常どおり編集用に開きます。

助けてください

4

1 に答える 1

1

投稿したコードは、シートのローカル モジュール (Sheet1 など) に入力すると問題なく動作します。ユーザー エクスペリエンスの観点からは、違いはほとんどわかりません。つまり、

  1. 値が「GO」のセルをダブルクリックすると、[Done] メッセージボックスが表示されます。これを終了すると、セルが選択されたままになりますが、編集モードにはなりません (つまり、セルにカーソルを挿入しません)。

  2. 他の値のセル (例: "abc" または空のセル) をクリックすると、[Done] メッセージボックスが表示されます。これを終了すると、セル編集モードになり、最後の文字の後に書き込みカーソルが置かれます。現在の値なので、すぐにセルに入力を開始できます。

そうは言っても、上記の1.でも、入力を開始するのを妨げるものは何もありません。最初の文字を押すと、「GO」は入力した単一の文字に完全に置き換えられます。そのため、最終的なコードが選択の位置を変更したり、セルに色を付けたりしない限り、ユーザーにとっての違いは最小限であり、見落とされる可能性があります。等

于 2013-08-06T13:49:27.487 に答える