第8話――「ワードで正規表現置換もどき(ワイルドカード)を実現する」
―――――――――――――――――
ワードで次の形の置換を行い、マクロを用いて振り仮名表記を実現する
周恩来(ジョウ・エンライ)
↓
―――――――――――――――――
🟦『徒然なる日常生活』第二章第8話(青空文庫形式・カクヨム形式その①)
▶️https://kakuyomu.jp/users/happy-isl/news/822139842600345772
―――――――――――――――――
wzエディターの正規表現置換を使えば、この形「周恩来(ジョウ・エンライ)」の文字を青空文庫形式・カクヨム形式に直すことが出来ます。方法も書いておきましょう。
―――――――――――――――――
正規表現検索
([一-鿿]+)(([^)]*))
正規表現置換
―――――――――――――――――
🟦『徒然なる日常生活』第二章第8話(青空文庫形式・カクヨム形式その②)
▶️https://kakuyomu.jp/users/happy-isl/news/822139842600669299
―――――――――――――――――
―――――――――――――――――
ワードでは正規表現が使えるのか?
残念ながら、ワードでは正規表現が使えません。その代わりにワイルドカードが使えます。
手順は次のとおりです。
1) Ctrl+H(検索と置換)を開く。
2) 「詳細設定」を開き、「ワイルドカードを使用する」にチェックを入れる。
3) 次を設定して「すべて置換」。
―――――――――――――――――
検索する文字列(Find what)
([一-龯]@)(([!)]@))
置換後の文字列(Replace with)
―――――――――――――――――
🟦『徒然なる日常生活』第二章第8話(青空文庫形式・カクヨム形式その③)
▶️https://kakuyomu.jp/users/happy-isl/news/822139842600905849
―――――――――――――――――
―――――――――――――――――
この方法で、ワード文書の振り仮名を打ちたい箇所がこの形(青空文庫形式・カクヨム形式)になります。
―――――――――――――――――
🟦『徒然なる日常生活』第二章第8話(青空文庫形式・カクヨム形式その①)
▶️https://kakuyomu.jp/users/happy-isl/news/822139842600345772
―――――――――――――――――
この形になれば、『徒然なる日常生活』で僕が作ったマクロ(下に書いときます)を実行すればよいのです。
―――――――――――――――――
Option Explicit
Sub AozoraRubyToWordRuby()
' 青空文庫形式:
' ルビ書式:游明朝 10pt を指定(必要なら下の定数を変更)
Const RUBY_FONT_NAME As String = "游明朝"
Const RUBY_FONT_SIZE As Single = 10
Const RUBY_RAISE As Long = 0 ' 上下位置。必要なら 1~2 程度で微調整
Dim rngSearch As Range
Set rngSearch = ActiveDocument.Content
With rngSearch.Find
.ClearFormatting
.Replacement.ClearFormatting
.MatchWildcards = True
.Text = "
.Replacement.Text = ""
.Wrap = wdFindStop
.Forward = True
.Format = False
End With
Do While rngSearch.Find.Execute = True
Dim matchString As String
matchString = rngSearch.Text
Dim posOpen As Long, posClose As Long
posOpen = InStr(matchString, "《")
posClose = InStr(matchString, "》")
If posOpen <= 2 Or posClose <= posOpen Then
rngSearch.Collapse Direction:=wdCollapseEnd
GoTo ContinueLoop
End If
Dim parentText As String, rubyText As String
parentText = Mid$(matchString, 2, posOpen - 2)
rubyText = Mid$(matchString, posOpen + 1, posClose - (posOpen + 1))
' 念のため空を弾く
If Len(parentText) = 0 Or Len(rubyText) = 0 Then
rngSearch.Collapse Direction:=wdCollapseEnd
GoTo ContinueLoop
End If
' 親文字に置換
rngSearch.Text = parentText
' ルビを付与(ルビ側のフォント/サイズを指定)
rngSearch.PhoneticGuide rubyText, _
wdPhoneticGuideAlignmentCenter, _
RUBY_RAISE, _
RUBY_FONT_SIZE, _
RUBY_FONT_NAME
' 次の検索へ(いま置換した箇所の末尾に移動)
rngSearch.Collapse Direction:=wdCollapseEnd
ContinueLoop:
Loop
End Sub
―――――――――――――――――
これじゃ駄目でした。青空形式の部分がふりがな付きの文字になってしまったので、下の近況ノートで何とかコピーして下さい。
―――――――――――――――――
『徒然なる日常生活』ワード用マクロ
▶️https://kakuyomu.jp/users/happy-isl/news/822139842613934268
―――――――――――――――――
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます