私はダブルクリックイベントを使用します。 VBAコードはワークシート内に配置され、ワークシートのローカルに配置されます。私は、ファイルserachesを行いシートを持っている例として
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Put your code here
'The Target parameter will tell you which cell was double clicked.
'Target.Row will be the 1 based row number.
'Target.Column will be the 1 based column number.
'Target.Address will give you the cell address in "A1" format
'The Cancel parameter is a return value.
'If you set it to true, Excel will "cancel" or ignore the double click.
End Sub
:
ワークシートは、そのようなイベントハンドラを持っています。ファイル検索のためにセルA1が入力されます。セルB1は、ファイル内で検索するテキストの入力です。行2は単なるラベルですが、私は見つかったデータをソートするためにそれらを使用します。行3からA2またはB2のいずれかをダブルクリックしてください。行2のセルをダブルクリックするたびにソート順が逆になります。したがって、A2の最初のダブルクリックはファイル名の昇順でシートをソートし、A2の2回目のダブルクリックはファイル名の降順ソートを行います。 B2とパスのために同上。
3行目以降に検索結果が表示されます。列Aはファイル名を受け取ります。列Bはファイルへのパスを受け取ります。列Aのファイル名をダブルクリックすると、関連するプログラムがある場合はそのファイルが開きます。 B列のパスをダブルクリックすると、そのフォルダのエクスプローラが開きます。
Targetパラメーターが空のセルをダブルクリックしていることを示している場合は、CancelをTrueに設定して終了します。その結果、アクションは実行されません。
これは、要求しているよりも細分性がありますが、これは単なる例です。あなたは行が必要なように聞こえます。
右クリックのコンテキストメニューを使用し、2つのサブルーチン(
GetFields
と
GetTables
)へのリンクを追加し
私は同様のことをしなければならない時に、ユーザーに2つのオプションを提供しました。 (1)サブルーティンと呼ばれるセルの右クリックメニューに追加のオプションを追加しました。(2)サブルーチンと呼ばれるワークシートにボタンを追加しました。明らかにサブルーチンは 'ActiveCell'オブジェクトを使用して、テーブルのどの行が参照されているかを判断しました。 – YowE3K
@ YowE3Kああ、右クリックのコンテキストメニューに新しいオプションを追加することはできませんでした – Mojimi