[[20190624125829]] 『セル内の文字のスタイルの取得』(すいか) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セル内の文字のスタイルの取得』(すいか)

Excel VBAでセル内の文字列に適用されている色やスタイル(太字、斜体、上付き文字など)を一文字ずつ取得したいのですが、可能でしょうか。
いろいろと方法を探してみたのですが、色が不明の場合の取得方法が見つかりません。

ご存じの方がいらっしゃいましたらどうぞよろしくお願いいたします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


ヘルプから、「Font オブジェクト メンバー」あたりを調べてみてください。 上付きならSuperscriptプロパティとか、一通りの情報が揃っています。

あと、1文字はCharactersのStartとLengthを指定すれば良いです。 具体的な使用例は、「マクロの記録」を使って、手作業で1文字単位のスタイルをを変更することで得られるでしょう。
(???) 2019/06/24(月) 13:34


コメントをありがとうございます。
太字、斜体、上付き文字はうまくいったのですが、色だけどうしてもうまくいきません。

ActiveCell.Characters(Start:=1, Length:=0).Font.Color
または
ActiveCell.Characters(Start:=1, Length:=0).Font.ColorIndex

のようにした場合、「エラー 2015」という値が返ってきて
色の情報を得ることができませんでした。
ウォッチウィンドウで確認してみてもColorとColorIndex以外に色情報のようなプロパティは見つからず頭打ちになってしまいました。
(すいか) 2019/06/25(火) 09:31


 MsgBox .Cells(1).Characters(Start:=4, Length:=1).Font.ColorIndex

 A1に4文字以上の入力が有れば多分色を返してくれます。長さを増やせば
その分の文字色が同じなら色が返りますが違う色ならエラーを返すみたいですね
対象セルがからだと「エラー 2015」、長さをゼロにすると開始文字から最後までが
対象になるようですね。詳しい解析はしていません。ざ〜っとで。。。(*_*;
一文字ずつ調べるのは可能なようですね。。。← 多分 ^^;
m(_ _)m

(隠居じーさん) 2019/06/25(火) 10:06


 長さをゼロにして値を取得するとエラーみたいです。 ^^;;;
(隠居じーさん) 2019/06/25(火) 10:10

色が不明の場合の取得方法が見つかりません。 Sub Test()
    Dim i As Long
    With Range("A1")
        For i = 1 To .Characters.Count
            With .Characters(i, 1)
                MsgBox .Text & vbCrLf & _
                    "色:" & .Font.Color
            End With
        Next
    End With
End Sub

(ピンク) 2019/06/25(火) 10:11


みなさま、コメント本当にありがとうございます。

マクロの記録でたまたま長さが0になっていたところをコピペして
あれこれ試していたのでみなさまにご指摘いただいたエラーが
出ていました。。。すみません。

色以外は一文字ずつ調べるのに成功しましたので、
応用して試してみたいと思います。

本当にありがとうございました!
(すいか) 2019/06/25(火) 10:50


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.