実践パート4の"オブジェクト色変え”のマクロ作りについて解説しています。 図形 (オブジェクト) を、ある条件に合わせて色を変えることで、視覚的にわかりやすく表現してみるマクロです。
なお、この 「実践編」 は、すぐにでも業務に活かしていく方に向いています。 基礎的な「概要編」 は、別のシリーズにアップしていますので、そちらも参考にしてください。
---------------
前回:「オブジェクトの色変え ①」 問題設定と画面設計
今回「オブジェクトの色変え②」 コーディング
---------------
■ オブジェクトリストの作成
前回までで、オブジェクトをレイアウトしその番号を確認してきました。
次に、そのオブジェクトの一覧を別シートに作成していきます。 そのシートに、頻度(カウント) 項目とオブジェクトの紐づけをします。
つまり、この一覧シートの値を変えて、 色替えオブジェクトをコン
トロールするわけです。
■コーディング
(1) VBEを開きます。
起動ショートカット Alt+F11 キー
(2) 最終行を確認する (繰り返し回数確認)
以下のようなコードをつくり、 繰り返し実行のためのカウント数を把握します。
Sheets ("list"). Select
Range ("A1"). Select
maxrow
maxrow = maxrow - 2
(3) 頻度セルを選択して値をコピーする
"cnt1" は、 オブジェクト番号のことです。
リストにある頻度回数を、 "hin" 変数に格納します。
ここで、 +2は行のオフセット。 9は、列のオフセットです。
Cells (Rows. Count, 1). End (x 1 Up). Row
Sheets ("list").Select
hin = Cells (cnt1 + 2, 9).
Value
(4) 色を変更する、オブジェクトを選択します。
Sheets ("map"). Select
ActiveSheet. Shapes (cnt1). Select
(5) 色を変更の条件
If hin= 0 Then
With Selection. ShapeRange. Fill
Visible = msoTrue
ForeColor RGB = RGB (255, 255,255)
Transparency = 0
. Solid
End With
Elself hin >= 1 And hin <= 3 Then
With Selection, ShapeRange.Fill
.Visible = msoTrue
.ForeColor. RGB = RGB (255,153,204)
Transparency = 0
Solid
End With
Elself hin >= 4 And hin <= 6 Then
With Selection. ShapeRange. Fill
Visible
ForeColor RGB = RGB (255,255,0)
Transparency = 0
. Solid
End With
Elself hin >= 7 And hin <= 9 Then
With Selection. ShapeRange. Fill
.Visible = msoTrue
ForeColor. RGB = RGB (51, 153, 102)
.Transparency = 0
. Solid
End With
Else
With Selection. ShapeRange. Fill
Visible = msoTrue
ForeColor RGB = RGB (153, 204,255)
. Transparency = 0
. Solid
End With
End If
この条件を、オブジェクトの数 (cnt1) だけ繰り返します。
■ 実行結果
解説は以上です。 いかがでしたでしょうか? オブジェクト操作のテクニックは他にも、 位置を変えるや形を変えるなど、 色々あります。 今回、本質的な使い方をマスターして、 そのような応用へ工夫を凝らして発展させていきましょう。
#業務効率 #エクセル
VBA #プログラミング #マクロ #オブジェクト #色変え #コーディング