アクティブセルのある行・列を目立たせる:Excel エクセルの使い方-イベントプロシージャ/VBA
Excelを使っている方から結構いただく質問で、これまであえて無視してきた質問があります。
アクティブセルのある行や列が目立つようにできないでしょうか?
カーソルのあるアクティブな行・列を目立たせる方法はありませんか?
という質問です。
巨大な表を作成していると、同じ行・列にあるデータか否かがわかりにくくなってしまうので、わかりやすくするためにアクティブセルのある行や列の色を変更したりできないかということです。
これを実現するには、VBA(Visual Basic for Applications)でイベントプロシージャをゴリゴリコーディングするしかないだろうなと思っていて、このサイトで取り上げられるのは随分先だろうなと考えていました。
それをたった1行のコードと、条件付き書式を組み合わせることで実装する方法が紹介されていました!
「アンドリューのエクセルTIPS」さんの「行の自動ハイライト」というエントリーです。
ハッキリ言ってすごいです!
こんなシンプルな方法で実装してしまうとは。これぞExcel Hackと言っていいワザじゃないかと思います。
▼操作手順:アクティブセルのある行の書式を変更する
書式を設定したいセルを選択した状態で
メニュー[書式]−[条件付き書式]をクリック
↓
[条件付き書式の設定]ダイアログ−[条件1]欄の
1つ目のコンボボックスで[数式が]を選択
↓
コンボボックスの右のテキストボックスに
「=CELL("row")=ROW()」と入力
↓
[書式]ボタンをクリックして書式を設定
↓
[条件付き書式の設定]ダイアログ
−[条件1]欄
−[条件が真のときに使用する書式のプレビュー]
で書式が設定されたことを確認
↓
[条件付き書式の設定]ダイアログ−[OK]ボタンをクリック
CELL関数に引数「"row"」を指定すると行番号が返され、ROW関数は行番号を取得する関数で、この2つが等しいという条件で、条件付き書式を設定しています。
上記の方法を紹介している書籍も見かけたことがあるのですが、実はこれだけだとダメなんです。ただセルをクリックしてアクティブにしただけでは、上手く行の色が変更されないのです。
そこで安藤龍(アンドリュー)さんは以下ようなコードを追加したわけです。
▼アクティブセルのある行を目立たせる条件付き書式を有効にするイベントプロシージャ
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.ScreenUpdating = True
End Sub
上記のコードをVBE(Visual Basic Editor)のプロジェクトエクスプローラで、「ThisWorkbook」をダブルクリックして表示されるコードウィンドウに記述してください。
同じブック内のすべてのシートで、上記の条件付き書式を設定するのなら上記のとおりワークブックのイベントプロシージャでいいですし、ブック内のごく一部のシートで設定するのならワークシートのイベントプロシージャ(Worksheet_SelectionChange)でも同じ効果を得られます。
この「ScreenUpdating」というプロパティは、VBAで何かの処理をする際に画面の更新をいちいち行っていると処理速度の低下を招くので、それを防ぐために処理の開始前に
「Application.ScreenUpdating = False」
と記述するような使い方がよく知られています。
それとはまったく逆に、画面の更新を強制的に行わせるために
「Application.ScreenUpdating = True」
としているわけです。
列を目立たせるのであれば、条件付き書式の条件を
「=CELL("col")=COLUMN()」
としましょう。
行・列とも目立たせるのなら、条件1・条件2に別々に設定してもいいですし、OR関数を使って
「=OR(CELL("row")=ROW(), CELL("col")=COLUMN())」
としてもOKです。
実際に設定を行ったサンプルファイルを用意しておきましたので、興味のある方は是非条件付き書式の設定とVBAのコードをご確認ください。このサンプルファイルは上記と同じVBAのコードを含んでいますので、マクロを有効にして開いてください。
▼サンプルファイル(001406.xls 22KByte)ダウンロード
◇タイトル - 画面更新の停止−ScreenUpdatingプロパティ
◇概要 - 対象:Excel 97,2000,2002,2003 VBA(Visual Basic for Applications)を使って、マクロを組む場合によく必要とされる処理として確認メッセージの表示/非表示を切り替えがあります。この切り替えを行うためのDisplayAlertsプロパティについてご紹介しました。 同じくらい...
1位:生年月日から年齢を計算−DATEDIF関数
2位:Excel ショートカットキー一覧
3位:ドロップダウンリストの作り方−直接入力
4位:切り捨てしたい・切り上げしたい−ROUNDDOWN関数・ROUNDUP関数
5位:原稿用紙テンプレートのダウンロード
6位:エラー表示しないように−ISERROR関数
7位:請求書の無料テンプレート
8位:入力規則のリスト用データを別シートにまとめる
9位:コメントの印刷
10位:無料の家計簿テンプレートをダウンロード

