Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6636 / 76734 ←次へ | 前へ→

【75698】Re:「」で挟まれた部分のみの書式を変えたいです。
回答  γ  - 14/6/15(日) 21:42 -

引用なし
パスワード
   返事がありませんので、勝手にコメントします。

Findメソッドで"「"を検索し、
正規表現を用いて、"「"と"」"で挟まれた文字列の位置を取得しています。
普通にInstrだけでもできると思いますが、勢いで正規表現を使いました。

「」そのものを入れるかどうかや、
Instrを使った解法など、修正はそちらでどうぞ。

Dim re As Object
Sub test()
  Dim c As Range
  Dim firstAddress As String
  
  Set re = CreateObject("VBScript.RegExp")
  re.Pattern = "「(.*?)」"
  re.Global = True

  With Worksheets(1).UsedRange
    Set c = .Find(What:="「", After:=.Range("A1"), LookIn:=xlFormulas, _
           LookAt:=xlPart, SearchOrder:=xlByRows, _
           SearchDirection:=xlNext, MatchCase:=False, _
           MatchByte:=False, SearchFormat:=False)
    If Not c Is Nothing Then
      firstAddress = c.Address
      Do
        Call do_replace(c)
        Set c = .FindNext(c)
      Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
  End With
End Sub

Function do_replace(c As Range)
  Dim s    As String
  Dim matches As Object
  Dim m    As Object
  Dim st   As Long
  Dim myLen  As Long

  s = c.Text
  Set matches = re.Execute(s)
  For Each m In matches
    st = m.FirstIndex + 2
    myLen = Len(m.SubMatches(0))
    With c.Characters(Start:=st, Length:=myLen).Font
      .FontStyle = "太字"
      .Underline = xlUnderlineStyleSingle
    End With
  Next
End Function
4 hits

【75695】「」で挟まれた部分のみの書式を変えたいです。 みつを 14/6/15(日) 17:09 質問
【75696】Re:「」で挟まれた部分のみの書式を変えた... γ 14/6/15(日) 20:45 発言
【75698】Re:「」で挟まれた部分のみの書式を変えた... γ 14/6/15(日) 21:42 回答

6636 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free