Excel VBA C# (Android Xamarin) 入門

Excel VBA C#(主にAndroid+xamarin、Visual Studio)での開発記事を執筆します。

アクティブセルのある行・列を目立たせる

アクティブセルのある行・列を目立たせる

大きな表を作成していると、画面の真ん中にアクティブセルがきたとき、あれ?ここ何行目だっけ?何列目だっけ?とセルの番地がわかりにくくなることがあります。
そんなときセルの位置がパッとひとめで分かるように行と列に色がついているとわかりやすいですよね!

Excelの[条件付き書式]とVBAを使うと、図のようにアクティブセルから上辺の列番号までと、左辺の行番号までカラー表示ができます。

1)条件付き書式の設定

[ホーム]-[条件付き書式]-[新しいルール]をクリックします。
対象となる目立たせたいセルを範囲指定してください。

下記の数式2つを条件付き書式に設定して、塗りつぶしの色を設定する。

十字にしたい場合の設定

=AND(CELL("row")>=ROW(), CELL("col")=COLUMN())




囲み型にしたい場合の設定

縦軸の数式

=AND(CELL("row")>=ROW(), CELL("col")=COLUMN())


横軸の数式

=AND(CELL("row")=ROW(), CELL("col")>=COLUMN())




2)リアルタイムに色の描画を行うため、VBAを追加する。


アクティブセルが移動したら必ず再描画するようにVBAで設定します。
再描画とは、例えばセルに値を入力してEnterキーを押すと計算式が更新されるように、Excelが画面の描画を更新することをいいます。しかし、矢印キーを押してもその都度、計算式を更新するようなことはしていません。
今回の機能では、矢印キーやマウスクリックでアクティブセルを移動したときにも再描画をする必要があるため、VBAで以下のように設定します。


書き込むワークブックは「ThisWorkbook」です。以下のソースを張り付けてください。

' アクティブセルの行と列をハイライト表示する。
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
     
     Application.ScreenUpdating = True

End Sub


以上で完成です。