EXCEL VBA 選択セル・選択行・列 フォントカラーでハイライト表示・選択列・選択行を目立たせる・強調)テクニック
EXCEL VBA 選択セル・選択行・列 フォントカラーでハイライト表示・選択列・選択行を目立たせる・強調)テクニック
今回説明するのは、選択したセルに該当する文字列をハイライト表示させる方法を説明いたします。以前説明したのは、セルの背景色を変化させて強調させる説明でしたが、今回は、テキスト文字(セルの文字列)に対して色の変化・協調(太字)と言ったハイライト表示する方法を説明いたします。データを選択する際に、細かいデータですと発見しづらかったりするので、文字列ををハイライト表示する事で第三者に見てもらうプレゼンなと、人前で説明する際は、見る側としても見やすくなると思います。今回の説明もWorksheetオブジェクトのSelectionChangeイベントを利用した方法で行います。それでは、サンプルプログラムを交えて順番に説明いたします。
●【EXCEL VBA 選択セル・選択行・列 ハイライト表示・目立たせる・見やすく・強調)テクニック (SelectionChange)については、下記を参照して下さい】
●【Worksheet.SelectionChange イベント(Excel)、下記を参照して下さい】(Microsoft社 様)】
https://docs.microsoft.com/ja-jp/office/vba/api/excel.worksheet.selectionchange
EXCEL VBA 選択行の文字列をハイライト表示・文字色変更・太字 (選択行):SelectionChange)
下記のサンプルプログラムは、EXCEL画面でセルを選択して、選択行の文字列をハイライト表示させるサンプルプログラムです。社内業務で細かい表を参照する時やデータを入力する時など、入力する行や列を間違えて入力してしまう場合もあります。選択した行の文字列をハイライト表示する事で行を間違えて入力する事も少なくなると思います。それでは、サンプルプログラムを交えて順番に説明いたします。
【下記のプログラムは、シートモジュールのイベントプロシージャ「Worksheet SelectionChange」に登録します。】
※ワークシート内で選択範囲を変更した時に発生します。
【プログラムの流れ】
※プログラムの実行については、ワークシート内を変更した時に実行します。
① 画面更新を無効に設定します。
② ワークシートの文字列を全て消します。(黒色にする)
③ 現在選択されている選択行の文字列を赤色にします。
④ 画面更新を有効に設定します。
★【サンプルプログラム】
下記のリンク先よりサンプルプログラムをダウンロードする事ができます。
● 文字列のハイライト表示(サンプルプログラム)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
' ' Private Sub Worksheet_SelectionChange(ByVal Target As Range) '選択行・文字列ハイライト表示 Application.ScreenUpdating = False '画面更新の無効 With Target .Worksheet.Cells.Font.ColorIndex = 0 'ワークシート上の文字列を色を黒にします。(色を消す) .Worksheet.Cells.Font.Bold = False 'ワークシート上の文字列の太文を戻す。(強調してた文字を戻す) .EntireRow.Font.Color = vbRed '選択行の文字列を赤色にする。 .EntireRow.Font.Bold = True '選択行の文字列を太字にする。 End With Application.ScreenUpdating = True '画面更新の有効 End Sub ' |
(画面クリックして拡大)
EXCEL VBA 選択行の文字列をハイライト表示・文字色変更・太字 (選択列):SelectionChange)
下記のサンプルプログラムは、EXCEL画面でセルを選択して、選択列の文字列をハイライト表示させるサンプルプログラムです。社内業務で細かい表を参照する時やデータを入力する時など、入力する行や列を間違えて入力してしまう場合もあります。選択した列の文字列をハイライト表示する事で行を間違えて入力する事も少なくなると思います。それでは、サンプルプログラムを交えて順番に説明いたします。
【下記のプログラムは、シートモジュールのイベントプロシージャ「Worksheet SelectionChange」に登録します。】
※ワークシート内で選択範囲を変更した時に発生します。
【プログラムの流れ】
※プログラムの実行については、ワークシート内を変更した時に実行します。
① 画面更新を無効に設定します。
② ワークシートの文字列の色を黒にします。
③ 現在選択されている選択列の文字列を青色にします。
④ 画面更新を有効に設定します。
★【サンプルプログラム】
下記のリンク先よりサンプルプログラムをダウンロードする事ができます。
● 文字列のハイライト表示(サンプルプログラム)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
' Private Sub Worksheet_SelectionChange(ByVal Target As Range) '選択列の文字列をハイライト表示 Application.ScreenUpdating = False '画面更新の無効 With Target .Worksheet.Cells.Font.ColorIndex = 0 'ワークシート上の文字列を色を黒にします。(色を消す) .Worksheet.Cells.Font.Bold = False 'ワークシート上の文字列の太文を戻す。(強調してた文字を戻す) .EntireColumn.Font.Color = vbBlue '選択行の文字列を青色にする。 .EntireColumn.Font.Bold = True '選択行の文字列を太字にする。 End With Application.ScreenUpdating = True '画面更新の無効 End Sub ' |
(画面クリックして拡大)
EXCEL VBA 選択した行・列の同時文字列のハイライト表示 (十字型・クロスハイライト):SelectionChange)
下記のサンプルプログラムは、サンプルプログラム①(選択行の文字列のハイライト表示)とサンプルプログラム②(選択列の文字列のハイライト表示)を組み合わせたプログラムになります。行列を同時にハイライト表示する事で、文字列のクロスハイライト表示で、現在選択している行・列が瞬時に分かり易くなります。それでは、サンプルプログラムを交えて順番に説明いたします。
【下記のプログラムは、シートモジュールのイベントプロシージャ「Worksheet SelectionChange」に登録します。】
※ワークシート内で選択範囲を変更した時に発生します。
【プログラムの流れ】
※プログラムの実行については、ワークシート内の選択範囲を変更した時に実行します。
① 画面更新を無効に設定します。
② ワークシートの文字列をの色を全て黒にします。(色を消す)
③ 現在選択されている選択行の文字列を赤色にする。
③ 現在選択されている選択列の文字列を赤色にする。
④ 画面更新を有効に設定します。
★【サンプルプログラム】
下記のリンク先よりサンプルプログラムをダウンロードする事ができます。
● 文字列のハイライト表示(サンプルプログラム)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
' ' Private Sub Worksheet_SelectionChange(ByVal Target As Range) '選択行列・ハイライト表示 Application.ScreenUpdating = False '画面更新の無効 With Target .Worksheet.Cells.Font.ColorIndex = 0 'ワークシート上の文字列の色を黒にします。(色を消す) .Worksheet.Cells.Font.Bold = False 'ワークシート上の文字列の太文を戻す。(強調してた文字を戻す) .EntireColumn.Font.ColorIndex = 3 '選択行の文字列を赤色にする。 .EntireColumn.Font.Bold = True '選択行の文字列を太字にする。 .EntireRow.Font.ColorIndex = 3 '選択行の文字列を赤色にする。 .EntireRow.Font.Bold = True '選択行の文字列を太字にする。 End With Application.ScreenUpdating = True '画面更新の有効 End Sub ' |
(画面クリックして拡大)
EXCEL VBA 選択セルのみの文字列をハイライト表示:SelectionChange)
下記のサンプルプログラムは、EXCEL画面でセルを選択して、選択したセルのみの文字列をハイライト表示するサンプルプログラムです。選択セルのみをハイライト表示する事で選択セルをピンポイントで強調する事ができます。それでは、サンプルプログラムを交えて順番に説明いたします
【プログラムの流れ】
※プログラムの実行については、ワークシート内の選択範囲を変更した時に実行します。
① 画面更新を無効に設定します。
② ワークシート上の文字列の色を黒色にします。(文字色を消します。)
③ 現在選択されているセルの文字列を赤にします。(選択セルのみ)
④ 画面更新を有効に設定します。
★【サンプルプログラム】
下記のリンク先よりサンプルプログラムをダウンロードする事ができます。
● 文字列のハイライト表示(サンプルプログラム)
(画面クリックして拡大)
EXCEL VBA 指定範囲を指定した文字列のハイライト表示 (指定した範囲のみハイライト表示:SelectionChange)
下記のサンプルプログラムは、EXCEL画面でセルを選択して、選択した行列の文字列をハイライト表示させるサンプルプログラムです。今回のプログラムでは、ハイライト表示するセル範囲を指定して範囲外については、文字列の色は変更されません。セルの選択範囲内(セルA4~L23)のセルを選択した時は、選択された行と列の文字列がハイライト表示されます。範囲を指定する事で、範囲外のタイトルなど文字列の色など影響を与える事もなく文字列をハイライト表示させる事が出来ます。それでは、サンプルプログラムを交えて順番に説明いたします。
【下記のプログラムは、シートモジュールのイベントプロシージャ「Worksheet SelectionChange」に登録します。】
※ワークシート内で選択範囲を変更した時に発生します。
【プログラムの流れ】
※プログラムの実行については、ワークシート内の選択範囲を変更した時に実行します。
① ワークシート内のセル(A4~L23)の範囲以外は、このプログラムから抜けます。(文字列のハイライト表示をさせない)
② 現在の選択されている行番号を代入(行番号を把握します)
③ 現在の選択されている列番号を代入(列番号を把握します)
④ 画面更新を無効に設定します。
⑤ ワークシートのセル(A4~L23)指定範囲内の背景色を消します。(この範囲外の背景色は何もしない)
⑥ 現在の選択行の文字列を緑にします。(指定範囲内のセルA4~L23のみ)
⑦ 現在の選択列の文字列を緑ににします。(指定範囲内のセルA4~L23のみ)
⑧ 画面更新を有効に設定します。
★【サンプルプログラム】
下記のリンク先よりサンプルプログラムをダウンロードする事ができます。
● 文字列のハイライト表示(サンプルプログラム)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
' ' Private Sub Worksheet_SelectionChange(ByVal Target As Range) '選択範囲を指定した行列の文字列をハイライト表示 ' Dim lRow, lCol As Long If Application.Intersect(ActiveCell, Range("A4:L23")) Is Nothing Then 'セルのA4~L23までの範囲以外は、このプログラムから抜けます。 Exit Sub Else lRow = Target.Row '現在の選択行の行番号を代入 lCol = Target.Column '現在の選択列の列番号を代入 Application.ScreenUpdating = False '画面の更新を停止する。 With Range("A4:L23").Font .Color = 0 'ワークシート上の文字色を消す。(指定範囲A4~L23) .Bold = False 'ワークシート上の文字列の太字を戻す。(指定範囲A4~L23) End With With Range("A" & lRow & ":L" & lRow).Font .Color = vbGreen '選択行の文字列の色を緑にする。(指定範囲A4~L23) .Bold = True '選択行の文字列を太字にします。(指定範囲A4~L23) End With With Range(Cells(4, lCol), Cells(23, lCol)).Font .Color = vbGreen '選択列の文字列色を緑にする。(指定範囲A4~L23) .Bold = True '選択列の文字列を太字にします。(指定範囲A4~L23) End With Application.ScreenUpdating = True '画面の更新を再開する End If End Sub ' |
(画面クリックして拡大)
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。