人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

要点:
RTF ファイル対応 (書式を表示できる) のアプリケーションで、正規表現の前方一致(不一致)や後方一致(不一致)が使えるものを教えてください。

事情
RTF ファイルで以下のようなテキストを
I have a
question.
以下のように置き換えたいと思っています。
I have a question.
つまり、文頭が小文字で始まる(改行の次が小文字である)場合にその改行を削除してスペースに置き換えたいわけです。

秀丸の正規表現でいうところの「\n(?=[a-z])」を「 」(半角スペース) で置き換えるのと同じなのかと思います。秀丸ではRTFフォーマット自体がデータとして表示されてしまいますし、MS-Wordでは前方一致や後方一致をサポートしていません。(ほかに方法がなければVBAかな)

人力検索のお知恵を拝借したいと思います。
よろしくお願いします。

●質問者: にぎたま
●カテゴリ:コンピュータ
✍キーワード:MS-Word VBA アプリケーション サポート テキスト
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● airplant
●70ポイント ベストアンサー

rtfと正規表現が使えるものは中々なさそうなので、Wordのマクロで実現して見ました。

Sub Conv()

 Call ChgCR("^l")  '行区切り
 Call ChgCR("^p")  '改行
 
End Sub
 
Sub ChgCR(sText As String)

 Dim rowCheck As Long

 Selection.GoTo What:=wdGoToLine, _
 Which:=wdGoToFirst, Count:=1, Name:=""
 Selection.Find.ClearFormatting
 With Selection.Find
 .Text = sText
 .Replacement.Text = ""
 .Forward = True
 .Wrap = wdFindContinue
 .Format = False
 .MatchCase = False
 .MatchWholeWord = False
 .MatchByte = False
 .MatchAllWordForms = False
 .MatchSoundsLike = False
 .MatchWildcards = False
 .MatchFuzzy = False
 End With
 
 Do While Selection.Find.Execute = True
 rowCheck = Selection.Start
 Selection.MoveRight unit:=wdCharacter, Count:=1
  ' 最終文字なら処理せずに抜ける
 If Selection.Start > rowCheck Then
  ' ^[a-z]の判定
 If Selection.Text <> UCase(Selection.Text) Then
  ' ^[a-z]なら前の改行又は行区切りをスペースに変更
 Selection.TypeBackspace
 Selection.TypeText Text:=" "
 End If
 Else
 Exit Do
 End If
 Loop
 
End Sub

Wordのnormalに上記マクロを組み込んで使ってください。


行区切り(「↓」で表示される)と改行があるので、両方を\nの扱いにしました。

なお、正規表現で試みてみたのですが、どうもWordでは書式が変更されてしまうので、断念しました。

◎質問者からの返答

ありがとうございます。

土日はちょっと出ていたのでオープンできませんでした。

ざっと見る限り「そのまんま」の処理をマクロで処理しているようですね。

(「そのまんま」というのは悪い意味ではありませんよ)

どのような方法でも結果がでればよいですし、

マクロで組めれば柔軟性がありますのでいろいろと幅が広がります。

とりあえず今夜は時間がありませんので、

12/1 移行に実際にためしてから また追記いたします。

取り急ぎオープンしましたという通知まで。


2 ● kiki44
●0ポイント

http://q.hatena.ne.jp/1227869635

◎質問者からの返答

スパムですね、わかります><

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ