- ベストアンサー
エクセルのセルの一部の書式変更について
エクセルのセルの中の文字の一部を書式を変更するのに、ループは使えないのでしょうか。 他の回答の中に変換のマクロがあってそれを使わせてもらったのですが、1セルの中で何回か変更をしようとループ処理をしたのですが、反映されませんでした。 具体的には ================================= Option Explicit private Const FNAME As String = "MS ゴシック" Private Const FSTYLE As String = "標準" Dim mWh As String Dim mFa As String Dim c As Range For j = 1 To 100 Sheets("さくいん").Select mWh = "東京" & j & " " Set c = ActiveSheet.UsedRange.Find(What:=mWh, LookIn:=xlValues, LookAt:=xlPart, SearchDirection:=xlNext, MatchCase:=True, MatchByte:=True) If Not c Is Nothing Then mFa = c.Address ReplaceFont c, mWh Do Set c = ActiveSheet.UsedRange.FindNext(c) If c.Address = mFa Then Exit Sub ReplaceFont c, mWh Loop Until c Is Nothing End If Next j End Sub '---- Private Sub ReplaceFont(rng As Range, strSearch As String) Dim i As Integer Dim Ln As Integer Ln = Len(strSearch) i = InStr(rng.Value, strSearch) With rng.Characters(i, Ln).Font .Name = FNAME .FontStyle = FSTYLE End With End Sub ====================================== というかんじで、「東京1」~「東京100」のフォントをゴシックにしたいのですが、1セルの中に「てすと 東京1 品川区 東京22 ・・」といった具合に複数の該当文字が存在するのです。 ループなしで1つずつ実行すると問題ないのですが、・・・ よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
お礼
myRangeさん、ありがとうございました。うまくいきました。