90865


エクセルマクロにて、  
シェイプのフォント色が「自動」かどうかを判別しようとしています。  
以下のように、ColorIndexがxlColorIndexAutomaticの場合、フォント色を「自動」と判断していますが、  
Excel上でカラーパネルより、フォント色に黒（Colorコードは0）を設定した場合も、ColorIndexがxlColorIndexAutomaticとなる為、黒と「自動」が区別できない状態です。  
判別方法があれば教えてください。

[code]

    If ActiveSheet.Shapes(0).TextFrame.Characters.Font.ColorIndex = xlColorIndexAutomatic Then
    ・・・省略・・・
    End If
    
[/code]


CC BY-SA 4.0
2022-07-13T02:58:15.223
89948
2022-09-01T05:07:18.993
34686
question
vba
Excelのシェイプのフォント色が自動かどうかの判別


シェイプのフォントの色の「自動」とFont.Colorで黒の判別してみました。  
同じ振る舞いをするので、仕様のようですね。

[code]

    Sub macro1()
    Dim sp As Shape
    Set sp = ActiveSheet.Shapes(1)
    sp.TextFrame.Characters.Font.Color = 0
    If ActiveSheet.Shapes(1).TextFrame.Characters.Font.ColorIndex = xlColorIndexAutomatic Then
    sp.TextFrame.Characters.Font.ColorIndex = 3
    End If
    End Sub
    
[/code]


CC BY-SA 4.0
2022-07-14T00:28:29.480
89962
2022-07-16T22:05:34.347
2022-07-16T22:05:34.347
50767
50767
89948
answer


回答ありがとうございます。  
自動については以下で判別するようにしました。

[code]

    shape.TextFrame.Characters.Font.ClorIndex = xlColorIndexAutomatic And
    shape.TextFrame2.TextRange.Characters.Font.Fill.ForceColor.ObjectForceColor = msoNotThemeColor
    
[/code]


CC BY-SA 4.0
2022-09-01T05:07:18.993
90865
2022-09-01T05:07:18.993
34686
89948
answer