Excel VBA テクニック集
コメントの文字書式2





Excel VBA テクニック集

コメントの文字列の一部の書式設定、及び取得です。

使い方は、ファイル一覧を使った応用の、「マクロ専用ファイル」によるマクロ実行に、下記コードを入れます。
書式設定の一般書式は
    Dim Comment_Obj As Object
    Set Comment_Obj = Excel_App.ActiveSheet.Comments(3)
    
    先頭文字位置から文字数分の指定は
    Comment_Obj.Shape.TextFrame.Characters(先頭文字位置, 文字数)
    先頭文字位置から最終文字までの場合は
    Comment_Obj.Shape.TextFrame.Characters(先頭文字位置)
    によって指定します。
    
    たとえば「太文字」指定
    5文字目から14文字まで、つまり10文字分の場合は、
    Comment_Obj.Shape.TextFrame.Characters(5, 10).Font.Bold = True
    7文字目から最終文字までの場合は
    Comment_Obj.Shape.TextFrame.Characters(7).Font.Bold = True
    になります。

「太文字」以外の指定は、
フォント名
    Comment_Obj.Shape.TextFrame.Characters(7).Font.Name = (フォント名)
フォントサイズ
    Comment_Obj.Shape.TextFrame.Characters(7).Font.Size = (フォントサイズ)
取消し線
    Comment_Obj.Shape.TextFrame.Characters(7).Font.Strikethrough = (論理値)
ColorIndex
    Comment_Obj.Shape.TextFrame.Characters(7).Font.ColorIndex = (カラーインデックス)
Color自動
    Comment_Obj.Shape.TextFrame.Characters(7).Font.ColorIndex = 74
Color
    Comment_Obj.Shape.TextFrame.Characters(7).Font.Color = (カラー値)
になります。  
文字列の書式を取得する場合、文字により書式が違う可能性があるため、1回の命令で取得することはできません。
たとえば、全体のフォントは「MSP ゴシック」、「注意事項」の部分だけ「MS 明朝」になってます。「フォント名」を例に下記マクロを実行します。


    Dim Font_Tbl() As String
    Dim Len_I as Integer
    Dim I As Integer

    Len_I = Len(Comment_Obj.Shape.TextFrame.Characters.Text)
    '注:改行Chr(10)も1文字としてカウントされます
    ReDim Font_Tbl(Len_I)
    For I = 1 To Len_I
        Font_Tbl(I) = Comment_Obj.Shape.TextFrame.Characters(I, 1).Font.Name
        Next I
文字ごとのフォント名が取得できるので、Font_Tbl()を操作すれば、詳しい情報が取得できます。

「こだわりハウス」写真館| 数学公式集| ピンポイントストリートビュー| FaceBook| Excel Vba テクニック集| Excel 計算式解析・他解析| 富山の建築家| Excel 計算式解析・他解析| 積分の定義・積分の記号の意味の研究|