今回のオシャレエクセルは、選択している行(アクティブな行)を強調して目立たせます。
使いたいときだけスマートにハイライトできるマクロを紹介します。
選択セル(アクティブ)の行をハイライト表示する
行にびっしりとデータが詰まっているエクセルシートは今どこのセルにいるのか見失ってしまうときがあります。
そんなときセルをハイライトさせて目立たせると見やすくなります。
セルをハイライトさせて行・列を目立たせることはエクセルではポピュラーな技で検索するとマクロを使った方法や条件付き書式で定義する方法などたくさん解説されています。
しかし、条件付き書式を定義するもの手間。スマートに強調ハイライトできるようにマクロを作ってみます。
機能仕様
目立たせたいときだけハイライト
リボンの「行ハイライト」でアクティブな一行が強調ハイライトされます。
シートごとに行ハイライトして普通に見たいシートに影響がありません。
ハイライトのオフもできるように。
「行ハイライト」をもう一度クリック、またはエクセルシートを保存すると強調ハイライトを解除します。
背景色はそのまま
背景色があるセルは選択が外れると元の背景色に戻ります。
使い方
リボンの定義するとワンクリックでハイライトできます。
マクロコード
今のシートだけハイライトさせたいときにオン、止めたいときにオフのシンプルな作りになっています。
マクロを実行すると ThisWorkbook にコードの書込みとワークシートに条件付き書式の設定を行います。もう一回、実行するとコードと書式設定をクリアします。
If Cells.FormatConditions.Count <> 0 Then
ActiveSheet.Cells.FormatConditions.Delete
Else
ActiveSheet.Cells.FormatConditions.Add Type:=xlExpression, Formula1:="=CELL(""row"")=ROW()"
ActiveSheet.Cells.FormatConditions(1).Interior.Color = RGB(234, 244, 252)
On Error Resume Next
Cnt=ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule.ProcBodyLine("Workbook_SheetSelectionChange", 0)
With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.DeleteLines Cnt, 20
End With
With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.AddFromString _
"Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)" & Chr(13) & _
" Application.ScreenUpdating = True" & Chr(13) & _
"End Sub" & Chr(13) & Chr(13) & _
_
"Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) " & Chr(13) & _
"Cnt = ActiveWorkbook.VBProject.VBComponents(""ThisWorkbook"").CodeModule.ProcBodyLine(""Workbook_SheetSelectionChange"", 0) " & Chr(13) & _
"With ActiveWorkbook.VBProject.VBComponents(""ThisWorkbook"").CodeModule " & Chr(13) & _
".DeleteLines Cnt, 20 " & Chr(13) & _
"End With " & Chr(13) & _
"今シート = ActiveSheet.Name " & Chr(13) & _
"For Each 各シート In Worksheets " & Chr(13) & _
"With 各シート " & Chr(13) & _
".Select " & Chr(13) & _
"名 = .Name " & Chr(13) & _
"Application.ScreenUpdating = False " & Chr(13) & _
"Worksheets(名).Cells.FormatConditions.Delete " & Chr(13) & _
"End With " & Chr(13) & _
"Next " & Chr(13) & _
"Worksheets(今シート).Select" & Chr(13) & _
"End Sub "
End With
End If
アレンジ
サンプルは1シートごとに動作しますが全シートまとめての方が使いやすいときは一括で定義してあげてください。エラー処理は入っていませんので保護されたシートなどではエラーになります。必要に応じでエラー処理を組み込んでください。
はじめからThisWorkbookにコードがあったり条件付き書式があるシートはマクロやルールがクリアされます。そのようなシートの場合は工夫してみてください。
使いやすくして
もっと目立つ色がいい!
そんなひとには、RGB(234, 244, 252)の値を派手な色に変えてあげましょう。
行と列をハイライトしたい!
条件式を変えるとどちらもハイライトします。
=OR(CELL(""row"")=ROW(), CELL(""col"")=COLUMN())"
セーブしてもハイライトさせておきたい!
こまめにセーブする人にはセーブでハイライトが元に戻ると不便かもしれません。
そんなひとには、BeforeCloseにかえてあげましょう。
その他のオシャレエクセル
エクセルの普段使いが便利になるいろいろなマクロを使ってみました。
興味のあるひとは、マクロを使ったおしゃれエクセルのラインナップ をご覧にください。
- 全角と半角を統一したい!
エクセルのド定番処理の「全角統一マクロ」(半角、かな全角対応) - セルの文字を合体したい!
エクセルでテキストを選択合体!セルの文字を1クリックでひとまとめにする - セルの文字の前後にテキストを追加したい!
エクセルで文字の前(後)にテキストをまとめて追加する
えーーー、マクロ無理…。というあなたへ
- あー無理!技術はお金で買う!
そんなあなたには多彩なおしゃれ機能を詰め込んだエクセルブックをご用意しています。フォントの色替えショートカットも全色セットです。DM( @eos40is )でお問い合わせください。Amazonギフト券 でビール1杯🍺ご馳走してください。 - アフィリエイトリンクでお買い求めになられた方へ
当サイトのリンクからエクセルをお買い求めていただくと紹介料(成果報酬 )があります。お礼としてご希望の方にはブログ記事のエクセルをお送りします。購入日をDM( @eos40is )でご連絡ください。