アプリ版:「スタンプのみでお礼する」機能のリリースについて

A列全体を選択させて(Ctrlとスペースキーにて)、a列のみを対象として検索をかける、という動作をよくします。その際、検索パネルをだすショートカットキーはCtrl+Fなのですが、間違えてCtrl+Vしてしまう間違いをよくしてしまいます。その間違った操作をしてしまうと、a列の全てのセルがクリップボードにある情報に書き換えられてしまうのです。これを防ぐVBAを作成しようと思っています。
“列全体を選択した時にペーストしたら、その動作は無効”というようなVBAをイメージしています。
列全体の選択時のイベントがあれば、すぐにできるな、と思いまして。シートがアクティブになったときのイベントはありますが、特定の列がアクティブになった時のイベントでも同じ目的が実現できるので、そんな情報でも結構です。検索パネルを開いたときのイベントでも同様です。

なお当サイトのエクセル系ジャンル内で“列全体 選択 イベント 検索 マクロ”といったキーワードを組み合わせて検索しても該当するQAがなかったのでお聞きします。

環境はWindowsXP Pro,使用しているEXCELはExcel 2000 です。

A 回答 (3件)

補足しておきます。



>“列全体を選択した時にペーストしたら、その動作は無効”というようなVBAを
> イメージしています。

  If Target.Rows.Count = Rows.Count Then
    Application.OnKey "^v", ""
  Else
    Application.OnKey "^v"
  End If

特定シートならシートモジュール、全てのシートなら ThisWorkbook の Selection Change
イベントにこんな感じのコードを書けばよいかな?

まあ、マクロを無効で開かれると全然効果なしですけどね(;^^
    • good
    • 0
この回答へのお礼

う、ほぼ当方の望み通りです。。。
ありがとうございます!

お礼日時:2007/01/08 19:35

CTRL+ZでCTRL+Vの効果の取り消しができるので、そこまで考えなくても良いのでは。


やる(組み込む)のが簡単ならば、質問のようなことを組み込むのも良いと思うが。
ーー
私も良くわからないが、イベントというけれど、エクセルのVBAで捉えられるのはマウス関係が多いし、メニューの選択パターンやツールバーのツールの選択や、行・列の挿入・削除・巾や高さ拡大・縮小、ショートカットキー利用など、捉えたいことは考えれば無数に沢山あるが、素人には、させてくれる仕組みがないのと思う。
素人にはエクセルで「XXしたとき」のXXは頭に描くことは簡単だし、もっともなことだと思うが。
何かの処理(例 行削除)の中核処理の(システムの)モジュールに入る前や処理後にユーザーに処理コントロール権を返し、捉えるようにしてくれれば良いが、そういう統一的思想を採用してないようです。
ActiveCell.EntireColumn.Selectは簡単にさせてくれるが、それを
操作したとき、しらせてもらう仕組みはない。エクセルは操作が主流
で、やっている本人にはわかるじゃないか、ということだと思う。
その前提がエラーチェックなどのときには崩れるので困っちゃう。
だから既回答のように個別に工夫して考えるほかないと思う。
    • good
    • 0
この回答へのお礼

なるほど。おっしゃることも少しですが、分かります。
ご回答ありがとうございます。

お礼日時:2007/01/08 19:37

いろいろな方法がありますけど...



> 列全体の選択時のイベント

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Rows.Count = Rows.Count Then
    MsgBox "列全体が選択されました"
  End If
End Sub
    • good
    • 0
この回答へのお礼

遅くなりましてすいません。
セレクションチェンジの定義を調べていたら"ワークシート上で何かが起こったら何かをするような目的に使われます。"とありました。
 そういう汎用的なものがあったのですね。ありがとうございます!

お礼日時:2007/01/08 19:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!