|
環境 EXCEL2003
はじめまして。
下記に付いて教えて下さい。
下記動作をするVBAを作っています。
セルに設定されているプロパティをみて、特定のプロパティごとにセルに色をつける。
下記の例だと、表示形式(NumberFormatLocal)をみて、色をつけています。
問題点
1.セルの数が増えれば増えただけループ回数が多くなり時間がかかります。
2.該当の表示形式かどうか、if文で判断しているため、条件を満たしても後続の判定処理が行われる。
⇒一番上のif文の条件("G/標準")だとしても、2個目以降("#,##0;[赤]-#,##0")の条件式が実行される。
⇒select case 文で置き換えても処理ステップ数は変わらないと思っています。
なので、特定の範囲の中で、NumberFormatLocal="G/標準"のセルを選択できるような方法はないでしょうか?
又、条件が増えても処理が重くならない書き方はあるでしょうか?
'処理範囲の設定
XLWS.Range(strStartcell, strEndcell).Select
'処理実行
For Each cel In XLWS.Range(strStartcell, strEndcell)
If cel.NumberFormatLocal = "G/標準" Then
With XLWS.Range(cel.Address).Interior
.ColorIndex = 5 'BLUE
End With
Cell_flg = True
End If
If cel.NumberFormatLocal = "#,##0;[赤]-#,##0" Then
With XLWS.Range(cel.Address).Interior
.ColorIndex = 18 'Plum
End With
Cell_flg = True
End If
・
・
・
・
・
Next cel
|
|