Excel VBAについて質問します。


セル内の文章が部分的に太字になっており、そういったセルが大量にあります。
この状態で、セル内の太字部分のみを赤い文字に変更したいです。

置換処理が、どのような記述になるかご教示ください。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2011/11/06 15:54:16
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:cx20 No.1

回答回数607ベストアンサー獲得回数108

ポイント200pt

ベタな方法ですが、セルのフォントスタイルを1文字ずつ判断して、太字なら赤字にするという処理で、置換が可能です。


以下は1セルのみ置換するサンプルです。

Sub ChangeFontStyle()
    Dim myRange
    Set myRange = ActiveSheet.Range("A1")
    Dim i
    ' セルの文字数だけループする
    For i = 1 To Len(myRange.Value)
        ' 指定した位置の文字が太字ならば
        If myRange.Characters(i, 1).Font.Bold Then
            ' フォントの色を赤色に変更する
            myRange.Characters(i, 1).Font.ColorIndex = 3 ' 赤
        End If
    Next
End Sub
  • 参考情報

■ Excel(エクセル)VBA入門:セルのフォント・塗りつぶし・罫線を設定する

http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vba_font.html

他1件のコメントを見る
id:cx20

サンプルコードの色付けは「はてな記法」の「シンタックス・ハイライト」という機能を使っています。使い方は以下をご覧ください。

■ 入力したプログラムコードを色付けするスーパーpre記法 シンタックス・ハイライトの実装について - はてなダイアリー日記

http://d.hatena.ne.jp/hatenadiary/20061215/1166155734

2011/11/06 16:05:03
id:mutamutamuta

なるほど、はてなの機能なんですね。

先ほどのサンプルコード、試したところ完璧です。ありがとうございました。

2011/11/06 16:13:35

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません