訪問して頂きありがとうございます。まさふくろーです。
エクセルでデータを見たりする際、項目数(列の数)が多くて「今みているデータは何行目だったけ?」とか「知らず知らずのうちに見ているデータが一行ずれていた」などの経験ってありませんか?
今回は、一目でどの行を見ているかをわかりやすくする方法をご紹介します。
目次
動作イメージ
4行目のセルにフォーカスをあてると、4行目全体が黄色になる。
7行目のセルにフォーカスをあてると、7行目全体が黄色になる。
VBAにて、色付けの制御を行う
Visual Basic Editor(VBE)を起動します。
①「開発」タブをクリック⇒②「Visual Basic」を選択します。
プロジェクトエクスプローラーを表示します。
①「表示」タブをクリック⇒②「プロジェクトエクスプローラー」を選択します。
すると、こんな画面が表示されます。
色付けをしたい対象のシートを選択します。
今回の例では、エクセルのSheet1に色付けしたいので、プロジェクトエクスプローラーで、Sheet1を選択します。
VBAコードを入力する画面を表示します。
「sheet1」をダブルクリックします。
すると、VBAコードを入力する画面が表示されます。
セルにフォーカスをあてた時に動くイベントを表示します。
①「▼」マークの部分をクリック⇒②「Worksheet」を選択します。
すると、「Private Sub~End Sub」の文字が自動的に付加されます。
「Private Sub Worksheet_SelectionChange」の「SelectionChange」という箇所がイベントと呼ばれる部分になります。
イベントとは、Excel上で特定の操作が行われたとき、その操作が行われたことをExcelからVBAに通知する仕組みの事を言います。
「SelectionChange」というイベントは、選択範囲が変わった時に発生する(動く)イベントです。
つまり、セルのフォーカス位置が変わった時にも動くイベントです。
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) '変数の宣言 Dim myDataRow As Long Dim i As Long '色を付けたい開始行を設定 myDataRow = 2 'フォーカスがあたっているセルが2行目以降だった場合、以下の処理を行う。 If ActiveCell.Row >= myDataRow Then '色の初期化 Rows(myDataRow & ":" & Rows.Count).Interior.ColorIndex = xlNone '選択行を取得 i = Target.Row '選択行に色を付ける Rows(i).Interior.ColorIndex = 36 End If End Sub |
動作確認をします。
エクセルシートに戻って、選択した行に色が付くか確認をします。
エクセルファイルを名前を付けて保存します。
①「ファイル」タブをクリック⇒②「名前を付けて保存」を選択します。
ファイルの種類を「Excelマクロ有効ブック(*.xlsm)」にて保存してください。
最後まで読んでいただき、ありがとうございました!