Excel VBA セルの色、文字の色 取得方法 条件式の方法
プログラムの背景
Excel VBAでワークシートのセルの色や文字の色で、条件式で振り分けたい時がある。
例えば、連続の行を順番にするときに処理をしない行を作成したい時に、通常はフラグ用の列を作成しないといけないが、既存の列のセルの色や文字の色で処理ができると、余分な列が増えず、印刷用のワークシートの場合、そのまま印刷しても見た目に問題がないなどの利点がある。
また、VBAを使用していない、ワークシートの場合、人が見やすくするため、条件をセルの色、文字の色で振り分けていることが多い。ただし、そこから、プログラムにデーターを渡す場合は、そのままでは、使用しずらいので、それ用のフラグ列などを作成し、文字に起こしたほうが処理をしやすい場面が出てくるときがある。
セルの色で条件式を振り割るコード
x = 2 '列 2の場合は、B列
y = 3 '行 3の場合は、3行
If Cells(y, x).Interior.Color = RGB(255, 0, 0) Then
'処理の内容
endif
このコード自体は、B3のセルの色が赤の場合、処理の内容を実施する内容です。
「Cells(y, x).Interior.Color」こちらで、セルの色が取得できます。取得する値は、後述のRGB形式です。
「RGB(赤, 緑, 青)」RGBの色の指定です。赤だと「RGB(255, 0, 0)」。緑だと「RGB(0, 255, 0)」。青だと「RGB(0, 0, 255)」。
文字の色で条件式を振り割るコード
x = 2 '列 2の場合は、B列
y = 3 '行 3の場合は、3行
If Cells(y, x).Font.Color = RGB(255, 0, 0) Then
'処理の内容
endif
このコード自体は、B3の文字の色が赤の場合、処理の内容を実施する内容です。
「Cells(y, x).Font.Color」こちらで、セルの色が取得できます。取得する値は、前述のRGB形式です。
オススメ記事
EXCEL VBA 保存後にWindowsをシャットダウンする方法…
問題点 EXCEL VBAで、長時間動かすマクロだと、マクロ…
Excel VBA 列幅 自動調整 一部の列幅、全ての列幅を設定する…
問題点 ExcelのVBAでワークシートの列幅を自動調整した…
Excel VBA セルの色、文字の色 取得方法 条件式の方法…
プログラムの背景 Excel VBAでワークシートのセルの色…
ディスカッション
コメント一覧
まだ、コメントがありません