- ベストアンサー
【Excel】アクティブセルから決まった範囲を選択する
エクセルで、アクティブブセルから決まった範囲、 たとえば、セルA10がアクティブになっていれば A10~M10までを、セルB30がアクティブになっていたら B30~N30までを、常に1RX13C分を選択することを 覚えさせるような機能はありませんでしょうか? もしマクロでないと無理なら、マクロを教えていただけますでしょうか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 #2 さんのご指摘のように、範囲の選択自体よりも、コマンドの決定の方法が大事かもしれませんね。イベント処理も、邪魔になっては意味がありません。 以下は、ショートカット(Alt + A)に設定する方法です。 標準モジュールに設定し、保存して、そのブックを一旦閉じて、再び、開ければ、設定されています。もし、閉じないで使う場合は、Auto_Open のところにカーソルを置き、F5を押します。 '----------------------------------------- '<標準モジュール> Private Sub Hanni13() ActiveCell.Resize(, 13).Select End Sub Sub Auto_Open() 'キー設定 Alt + A Application.OnKey "%A", "Hanni13" Application.OnKey "%a", "Hanni13" End Sub Sub Auto_Close() 'キー設定 解除 Application.OnKey "%A" Application.OnKey "%a" End Sub
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
いつもどこかのセルが、アクチブであるので、いつも質問のようになっても、うっとうしい(不便)と思うので、必要なつど、ボタンを押すという仕組みのようなものが必要かと思った。 それでコマンドボタンをワークシートに1つ貼り付け、クリックして出てくるVBEの画面に 下記を貼り付ける。 Private Sub CommandButton1_Click() r = ActiveCell.Row c = ActiveCell.Column Range(Cells(r, c), Cells(r, c + 12)).Select End Sub デザインモードを脱する(ツールバーの鉛筆と定規のアイコンをクリック)。 これであるセル(A10やB30など)をポイントして、質問の機能を働かせたいなら、ボタンをクリックすると、13列分選択します。
お礼
お礼遅くなり、すみません。 VBE初心者なのです、記述の仕方まで教えていただき 助かります。短い記述で、ちゃんと選択できるんですね。 今回は表のデータが多く、縦スクロールが面倒なので、ボタンを使うのも少し難しいようです。今後の参考にさせていただきます。ありがとうございました!
- masa_019
- ベストアンサー率61% (121/197)
そのような機能が必要なシートのモジュールの SelectionChangeに、Target.Resize(1, 13).Select とすれば可能ですが、かなり使いづらいと思います。 なので、かわりにBeforeRightClickに Cancel = True Target.Resize(1, 13).Select として、普通に選択するときは、左クリックで、 1行×13列選択するときは右クリックと使い分けます。 右クリックメニューなどが使えなくなりますが、 左クリックで常に1行×13列選択よりは、ましかと思います。
お礼
アドバイス、ありがとうございます。やはりマクロでの機能になるのですね。マクロは超初心者なので勉強してみます。 右クリックメニューが使えなくなる、というのは、右クリックしたときの「切り取り」「貼り付け」「セルの書式設定」などの機能が使えなくなるということでしょうか??
差し支えなければ、なぜこのような機能が必要となるのか、教えていただけないでしょうか? 内容によっては、そのような機能を使わなくて済んでしまうこともありますから。
補足
表の途中に行を挿入したいのですが、通常の行の挿入だと アクティブセルの上の書式がそのまま反映されてしまいます。が、書式(文字色や罫線の太さ、文字の太さなど)がまちまちなので、挿入した行の書式を挿入後に整える際に 決まった範囲のセル選択をすぐに選択できるようにしたいのです。列が複数あるので、使いづらい、というだけなのですが。
お礼
お礼遅くなり、すみません。 Wendy02さんのマクロをそのまま書いて、実行できました。 大変便利に使ってます!ありがとうございます。