• ベストアンサー

Excel セル境界をダブルクリックで連続データの末尾移動 イベント取得は可能?

 Excel(2002)で連続して並んでいるデータの中で、アクティブセルの境界(カーソルが上下左右の矢印に変わるところ)をダブルクリックすると、ちょうどEndキー+↑↓←→を押したように、連続データの末尾にアクティブセルが移動します。(私10年近くExcelを使っていましたが、この機能は今日初めて知りました。)  で、このダブルクリックの機能をトラップすることは可能でしょうか。Worksheet_BeforeDoubleClickイベントでは捕まえられないようですが。

質問者が選んだベストアンサー

  • ベストアンサー
  • hakone
  • ベストアンサー率54% (40/73)
回答No.3

ふと思ったんですけど、そのシート(ブック?)が アクティブになったときに、 Application.CellDragAndDrop = False を実行してしまってはいかがでしょうか? 「セル境界をダブルクリック」自体を使えなくしておく という発想です。 後で戻しておけば、さほど問題にならないでしょう。

jimmy_makihara
質問者

お礼

 ありがとうございます。 applicationにこんなプロパティがあったんですね。 これなら使えそうです。 Worksheet_ActivateイベントでTrue,DeactivateイベントでFalseにすれば、目的が達成できそうです。

その他の回答 (3)

  • hakone
  • ベストアンサー率54% (40/73)
回答No.4

こんにちは。 既にプログラミングをなさっている方のようなので、余計な お世話かもしれませんが・・・ そのシートをアクティブにしたまま、ファイルを閉じて しまったり、別のブックをアクティブにしたりする可能性 もありますので十分にテストをお願いいたします。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

>連続して並んでいるデータ >連続データ 中身(=値)が規則的に連続していると言う意味ではないですね。データ・セルの塊とでも言いましょうか。 ●(もっと色々ありました) セル□の右辺でDクリック->範囲の同行右端セルへ飛ぶ セル□の左辺でDクリック->範囲の同行左端セル ” セル□の上辺でDクリック->範囲の同列上端セル ” セル□の下辺でDクリック->範囲の同列下端セル ” セル□の右下ハンドルでDクリック->範囲の同列下端まで 範囲指定。 その他もShiftキーを押しながら上記を行うと、上方向、 左右方向の範囲指定もできました。 空白(変な表現ですが、空白塊と言いましょうか)の範囲ない空白・非空白セルで上記を行うと、空白をさえぎるデータの手前が「端」と解釈される。 さえぎるものがない時は左端はA列、右端はなしの扱いのようです。 ●(さて本題の件) (ダブルクリックの機能をトラップすることは)ないと思います。 VBAではイベントを捉えさせてくれるのは限定的です。 APIか何かで、ウインドウメセージを捉え解析しないといけないようです。VBAの範囲を越えるのでは。 用途はなんでしょう。 全ての場面での、クリックやDクリックなどを別イベントに定義すると収拾がつかないのでは。 VBAの処理範囲は、データをある時期にまとめて一斉に処理する方式が、重点的にならざるをえないように思います。 その場合は自分が制御をとって d = Range("F65536").End(xlUp).Row などで済むように思いますが、素人かんがえですか。

jimmy_makihara
質問者

補足

用途は、セルをダブルクリックすると、別シートへそのセルの値をコピーするマクロを、上司に使わせたいのですが、うっかりセル境界をダブルクリックすると、とんでもないところへセルが移動してしまうので、セル境界ダブルクリックの機能を止めてしまいたいのです。で、そんなイベントをトラップできたら、何とかなるのではないかと思ったのですが。

  • diashun
  • ベストアンサー率38% (94/244)
回答No.1

diashun です。 「Worksheet_SelectionChange」が使えると思いますが・・・

関連するQ&A

  • ダブルクリックイベント

    シート数がかなり多数のエクセルファイルがあるのですが、全てのシートにダブルクリックイベントを適用させたいと思っています。 Worksheet_BeforeDoubleClickのコードを、全シート分まとめて記述することは可能でしょうか?

  • 《VBA》セルをダブルクリックしたときのイベント

    Worksheet/BeforeDoubleClickを使用して、 フォームを表示するという処理を行っています。 エクセルのセルにリストボックスが設定されているセルがあるのですが、 リストボックスのセルをダブルクリックした時にはイベントが動作しません。 通常のセルをダブルクリックした時にはイベントは正常に動作します。 リストボックスが設定されているセルでは動作することができないのでしょうか。

  • セルに貼り付けた画像の上からダブルクリックを機能させたい

     エクセルの各セルの上に写真を貼り付けています。 このとき写真の上からダブルクリックしても Worksheet_BeforeDoubleClick 等が働きません。  これを働かせる方法を教えてください。 よろしくお願いします。

  • エクセル マクロ ダブルクリックのイベント

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As range) というマクロをしても動きません。どうしてでしょうか? 他のsheetchaneとかのマクロは動くのですが・・ (ダブルクリックしてもセルが入力可能な状態になるだけです)

  • エクセルにて罫線をダブルクリックするとカーソルが吹っ飛ぶ

    業務でexcelをしています。 たまにセルをダブルクリックするつもりが罫線をダブルクリックしてしまい、 カーソルが上下左右の意図しないところへ飛んでいってしまうことが多々あります。 この機能をオフにすることは可能でしょうか。 また、オフにすることが可能であるならば、どのように設定すればよいのでしょうか。 ご存知の方がいらっしゃいましたらご回答よろしくお願いいたします。

  • エクセル2000で連続データが入力できなくなりました。

    エクセル2000で連続データが入力できなくなりました。 エクセル2000を使っていますが、最近になってマウスを使った連続データの入力ができなくなりました。 以前は、例えば下記の手順で連続データが入力できました。 ・A1のセルに「1」と入力して ・A1セルの右下隅にマウスカーソルを合わせて ・右クリックするとメニューが表示されて、連続データ入力可能 最近になって、スプレッドシート上ではマウスカーソルが常に十字型で矢印になりません。 ツールバー等に移動した場合は矢印になりますが。 連続データができなくなった原因や解決法をご存じの方いらっしゃいましたら、何卒ご教示下さいますようお願い致します。

  • Excel2007でのセルのダブルクリック

    Excelでアクティブセルの枠をダブルクリックすると、 一定の条件に合致するセルまでアクティブセルがジャンプする機能がありますが、 セルが小さい時には誤って枠をダブルクリックしてしまうことが多く、非常に不便です。 下記サイトでは、Excel2003での解決方法が掲載されていますが、 根本的な解決策ではないため、採用できません。 http://www.relief.jp/itnote/archives/000181.php #オートフィルが使えなくなるという代償はとても許容できません・・・ 同じ情報を掲載している他サイトもありましたが、いずれもExcel2003までの古い情報です。 私はExcel2007を使用しているのですが、2007ではこの機能をうまく無効化できないのでしょうか。

  • シングルクリックとダブルクリックのイベントについて

    皆さん、こんばんは。 ちょっと疑問に感じたものがありましたので質問させてください。 今日のある質問、 内容はセルをシングルクリックした場合と ダブルクリックした場合のイベントの違い。 その質問に対する次の回答について。 (1)両方のイベントを機能させるとSelectionChangeが先になり  その後、同セルWクリックでDoubleClickイベントが機能します (2)SelectionChange のシングル・クリックとBeforeDoubleClickの  ダブル・クリックとはダブル・クリックの過程にシングル・クリック  があるので、論理的に、そのイベントは重なってシングル・クリックに  取られるはずです」 (1)はたぶん回答者の勘違いだろうと思うのでそれはいいのですが、 疑問に感じたのは(2)の方です。 (2)の意味は、ダブルクリックすると必ずシングルクリック 即ちSelectionChangeイベントのみが発生し、 BeforeDoubleClickは発生しないということでしょうか いままでBeforDoubleClickも発生する場合があると思っていましたので質問しました。 回答者がVBA熟知の方なので当方が何か勘違いしているのかも知れませんが・・・。 以上宜しくお願いいたします。

  • 選択したセルでダブルクリックをするとエクセルマクロによりそのセルがコピ

    選択したセルでダブルクリックをするとエクセルマクロによりそのセルがコピーされて、メモ帳等のテキストエディタで貼りつけるとその値が出るようにしたいと思っています。 ほとんどイメージ通りにできたのですが、テキストエディタで貼りつけた値に加えて改行が入ってしまいます。 どのようにすると改行コードを消せますか?できないのなら、どのようにすればエクセルで任意のセルをダブルクリックをしたときに改行コードのないようにコピーできますか? 参考に現在のVBEで記述したコードを示します。 ----------------------------- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _ Cancel As Boolean) Target.Interior.ColorIndex = 37 Cancel = True Target.Copy End Sub

  • ダブルクリックしたセルのフォーカス位置取得

    初めて投稿します。よろしくお願い致します。 Excel上でダブルクリックしたセルの内容を、次のようにしたいと思っています。 ダブルクリックしたフォーカス位置より左側 → 現セルに残す ダブルクリックしたフォーカス位置より右側 → 右側のセルの値の先頭につける 知りたいことは、アクティブセルのフォーカスの位置(左から何文字目か?)を取得できるものでしょうか? ご教授頂ければ幸いです。 以上

専門家に質問してみよう