|
返事がありませんので、勝手にコメントします。
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
|
|