[[20161021204850]] 『SelectedSheetsの変化を通知するイベントは無いの』(鈴) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『SelectedSheetsの変化を通知するイベントは無いのですか?』(鈴)

教えてください。

セル範囲の選択の変化はSelectionChangeイベントでとらえることができますが、
Ctrlキーを押しながら隣のシートタブをクリックした時の様に
アクティブなシートは変わらないんだけど、SelectedSheetsは変わった
という事をとらえるイベントはないのでしょうか?

あってもよさそうに思ったのですが、探し方が悪いのかどうにも見当たりません

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 あっても良さそうですが、ありません。
 もしあったとしたら、どんな使い方をするんでしょうか。
 つまりイベントプロシージャでなければできないこととは、どんなことでしょうか。
 それを説明いただくと、次善策などの提案が寄せられるかもしれません。

(γ) 2016/10/21(金) 23:25


ないんですね。残念。ありがとうございました。

PreviousSelectionsのようなものを自前で作って、セル範囲の選択履歴をさかのぼる機能を作りたいのです。
マウス操作で複雑なセル範囲の選択をやっている最中に、1回のクリック誤りで最初からやり直しになるのが嫌で
セル範囲の選択に特化した元に戻すボタンみたいなのを考えてます。

履歴を登録するトリガーとしてApplicationイベントの

 SheetSelectionChange セル範囲の選択が変わった時用
 SheetActivate        シートが切り替わった時用
 WindowActivate       ウィンドウが切り替わった時用
 AfterCalculate       セル範囲・行・列が削除された時用(直近履歴が参照不能になってたら登録)
を使って、その時点の
 ActiveWindow.RangeSelection
 ActiveWindow.SelectedSheets
を配列に登録していく感じで組み立てを考えてます。

ただこれだけでは

 >>Ctrlキーを押しながら隣のシートタブをクリックした時
にいずれのイベントも発生しないので、何かないのかなと思ったのです。

マイナーケースではあるので、無いならそれでもいいかなとは思ってます。

(鈴) 2016/10/22(土) 10:13


>複雑なセル範囲の選択

↑こちらの方を間違いなく行うマクロを作ったらいかがでしょうか。。。
(マクロ化するなら、したいことをするために、セルを選択する必要もないかもしれませんが。。。)

いづれにしても、マクロ使うと、元に戻す機能が使えなくなるかもです。

(まっつわん) 2016/10/22(土) 10:59


はい。ごもっともなご意見です。

実は目的の半分は趣味のようなものでして、汎用的な機能として考えてます。
他にもジャンプ機能の様に振る舞うジャンプ機能に無いセル選択
例えば

  ・アクティブセルと同じ値
  ・アクティブセルと同じ式
  ・アクティブセルと同じ表示形式
  ・アクティブセルと同じ塗りつぶし色
  ・ロックされていないセル
  ・長さゼロの文字列セル
  ・文字列形式の数値セル
の一括選択とか、
現在の選択範囲と重なる部分に絞り込むための範囲指定ダイアログを表示
とか、
選択範囲を移動・拡張・縮小・複製する為のフォームを表示
などの機能をアドインにまとめている中のひとつです。

主に一過性の業務で活躍します。

(鈴) 2016/10/22(土) 11:52


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.