Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12576 / 76734 ←次へ | 前へ→

【69675】Re:検索前に戻したい
回答  とおりすぎ  - 11/8/19(金) 14:10 -

引用なし
パスワード
   aさんがどの程度の力量か解らないので、適当に解説します。

Userが何か操作を行ったときに実行されるVBAをイベントと呼びます。
シート上でのイベントに、セルを押したときと言うイベントはありません。

近いのは選択したセルを変更したときに実行されるSelectionChangeイベント
ですが、やじるしやEnter、Tabなどでセルを移動しても実行されますし、
逆に、すでに選択されているセルを、マウスで押しても実行されないなどの
制約があるためあまり推奨されません。

変わりにセルをダブルクリックや右クリックしたときに実行されるイベントを
推奨します。

記述法は、Excelの画面で、イベントを起こしたいシートを前面(Active)
にして、左下にあるのシートタブを右クリックし、出てきたショートカットの
コードの表示(V)を選択。

VBE画面が起動したら、上の方に(General)、(Declarations)と表示
されているコンボボックスの左の(General)をWorkSheetを選択。
右の(Declarations)から、BeforeDoubleClick(ダブルクリック)
もしくはBeforeRightClick(右クリック)を選択すると、

以下、ダブルクリックで進めます。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub
のような記述が自動で表示されますのでここにコードを記入。
引数のTargetにダブルクリックしたセルが入ります。
通常セルをダブルクリックしたときはセルの編集になりますが、
引数のCancelにTrueを入れると編集になりません。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Cancel = True
  Msgbox Target.Address
End Sub

を記述して適当なセルをダブルクリックしてください。

このままだとどのセルでも実行されてしまいます。
今回はF1とG1でのみ実行と言うことで、
この前のコードは標準Moduleにでも記述しておいて、
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Select Case Target.Address
  Case "$F$1"
    Cancel = True
    Call 最初に戻る
  Case "$G$1"
    Cancel = True
    Call 一つ前に戻る
  End Select
End Sub
のようにして、ダブルクリックされたセルアドレスでCallするプロシージャを
分けます。

ただ、ダブルクリックするとActiveCellがそのセルに移りますので、Findでの
引数は工夫したほうがいいです。
たとえば、検索のたび、見つかったセルを広域変数に取っておいて、Findの
引数Afterにそのセルを指定する(変数がNothingなら、Range("A1")など)など。
また、Findの引数はすべて指定した方が良いです。

また、同一のイベントは一つのシートに一つだけです。


まったく別の方法として、F1やG1に何か図形(オートシェイプの額縁など)を
貼り付け、図形を選択し、右クリックし、マクロの登録(N)で実行したいものを
登録するなど。
11 hits

【69651】検索前に戻したい a 11/8/17(水) 8:06 質問
【69652】Re:検索前に戻したい とおりすぎ 11/8/17(水) 9:32 回答
【69656】Re:検索前に戻したい a 11/8/17(水) 21:22 発言
【69662】Re:検索前に戻したい とおりすぎ 11/8/18(木) 10:14 回答
【69674】Re:検索前に戻したい a 11/8/19(金) 12:18 質問
【69675】Re:検索前に戻したい とおりすぎ 11/8/19(金) 14:10 回答
【69685】Re:検索前に戻したい a 11/8/20(土) 21:49 発言
【69724】Re:検索前に戻したい とおりすぎ 11/8/24(水) 14:43 回答
【69731】Re:検索前に戻したい a 11/8/25(木) 7:50 質問
【69732】Re:検索前に戻したい とおりすぎ 11/8/25(木) 8:52 回答
【69751】Re:検索前に戻したい a 11/8/26(金) 7:36 質問
【69753】Re:検索前に戻したい とおりすぎ 11/8/26(金) 10:26 回答
【69755】Re:検索前に戻したい a 11/8/26(金) 12:32 質問
【69757】Re:検索前に戻したい とおりすぎ 11/8/26(金) 15:12 回答
【69758】Re:検索前に戻したい a 11/8/26(金) 15:45 質問
【69759】Re:検索前に戻したい とおりすぎ 11/8/26(金) 16:34 回答
【69762】Re:検索前に戻したい a 11/8/26(金) 23:44 発言
【69775】Re:検索前に戻したい a 11/8/29(月) 7:39 質問
【69776】Re:検索前に戻したい とおりすぎ 11/8/29(月) 10:02 回答
【69778】Re:検索前に戻したい a 11/8/29(月) 12:16 質問
【69785】Re:検索前に戻したい とおりすぎ 11/8/29(月) 14:28 回答
【69787】Re:検索前に戻したい a 11/8/29(月) 14:42 お礼

12576 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free