面白そうなテーマだったので、挑戦してみました。
catia font size identification - DASSAULT: CATIA products - Eng-Tips
思ったより短時間に幾つものレスが付いて、ビックリ。
本当は、ズバリの物を投げちゃうことを快く思わない人も
いるのは知っているのですが、こっちも腕試しでやってみました。
(色々と細かなチェックは省きました)
通常であれば、文字を探しつつ、文字サイズを調べ、色を変更・・・
みたいな処理をするのだろうと思います。
実際に動くコードではないけれど、正攻法的にはこんな感じかな?
for each view in views for each txt in view.texts size = clng(txt.getfontsize()) sel.Clear select case size case < 1 sel.add txt vis.vis.SetRealColor(r,g,b,1) case < 2 sel.add txt ・・・
これだと、恐らく遅いんですよね。それ以上にNestが深い・・・。
だから僕は、
・全部のテキストをかき集める
・文字サイズ毎にコレクションに投入
・同じ色になるものを選択状態にして色を変更
の方法にしました。
要は同じ色になるものをまとめて選択しプロパティを
開いて色を変更している感じです。
恐らく、色の種類分しか変更処理しないので正攻法より
速いはず。特に文字の数が多い場合は。
今回の個人的な収穫としては
・Scripting.DictionaryはkeyがLong型でもイケる。
(Collectionはkeyはstring型のみだったはず)
・Scripting.DictionaryはvalueがCollection型でもイケる。
・DrawingTextPropertiesのColorを変更しても色が変わらない。
(何の為のプロパティなのだろう・・・)
但し、質問者さんのお望みが僕の想定を超えている・・・。