Excel VBA テクニック集
セルの書式(文字列の一部)





Excel VBA テクニック集

セルの書式(文字列の一部)の取得・設定方法です。

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

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


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

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

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