• ベストアンサー

WORD2010 囲み線を一括置換

WORD2010を利用しています。 囲み線で囲まれている文字を一括でダブルクォーテーション(”文字”)に置換することは可能でしょうか? どなたか詳しい方が居りましたら、ご教示をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.2

こんにちは うまく行くかどうか全く怪しいですけど、 Sub test()   Dim i As Integer   Dim j As Integer   Dim s As Integer   Dim o As Variant   i = 0   j = 0      For Each o In ActiveDocument.Words     i = i + 1          If i >= ActiveDocument.Words.Count Then       Exit For     End If          ActiveDocument.Words(i).Select          If Selection.Font.Borders(1).LineStyle = wdLineStyleNone Then          Else       Selection.Text = """" & ActiveDocument.Words(i) & """"       i = i + 3       ActiveDocument.Words(i).Select       Do Until Selection.Font.Borders(1).LineStyle = wdLineStyleNone         If ActiveDocument.Words(i - 1) = """" Then           ActiveDocument.Words(i - 1).Select           Selection.Text = ""           i = i - 1         End If         i = i + 1         ActiveDocument.Words(i).Select       Loop       ActiveDocument.Words(i - 1).Select       Selection.Text = Selection.Text & """"     End If        Next   Selection.Find.ClearFormatting   Selection.Find.Replacement.ClearFormatting   With Selection.Find     .Text = """"""     .Replacement.Text = """"     .Forward = True     .Wrap = wdFindContinue   End With   Selection.Find.Execute Replace:=wdReplaceAll End Sub これで、出来ますか? テストブックで試して下さい。

yasuhito_s1
質問者

お礼

確認&ご教示いただき有難うございます。 VBAマクロまで作成していただき恐縮です。 上記マクロでダブルクォーテーションが付きました。 ※囲み線はそのままでした。 有難うございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

Wordにおいて、囲み線は、ホームー囲み線(Aの文字の周りに▢のボタンの機能)を使ったものとしての話です。 ケースによっては、下記の至らぬ点は、囲み線を囲む語句群が判っている場合(したがって数も多くない、場合です) ==>文章の囲み線実情に応じて下記を行う場合のコードは、できるかどうかわかりませんが、考えてみます。 WordのVBAで Sub kakoikomi() Selection.Find.Font.Borders.Enable = True End Sub を実行しておきます。 ーーー Sub 囲い線変換2() ' 囲み線のある東京都, 築地市場, 議会の3語(例)を捉える こういう文章例を今回仮に作ってテストしてください。 t = Array("", "東京都", "築地市場", "議会") Dim Test As Document For i = 1 To 3 For Each Test In Documents With Test.Content.Find .Text = t(i) MsgBox .Text .Font.Borders.Enable = True .MatchByte = True .MatchCase = True With .Replacement .Text = """" & t(i) & """" .Font.Bold = True .Font.Color = wdColorRed End With .Execute Replace:=wdReplaceAll End With Next Test Next i End Sub これで囲み線を残したまま、語の前後を””と"”で囲みます。 ーー その後、ワードVBAで、すべての囲み線を抹消します。 Sub 書式を抹消する() '文字書式を抹消 '----------------------------------- With ActiveDocument With .Range.Font .Borders(1).LineStyle = wdLineStyleNone '囲み線を解除 End With End With End Sub  

yasuhito_s1
質問者

お礼

ご確認&ご教示いただき有難うございます。 囲み線に入る文字については不特定多数のため、予め確認することが難しいです。説明が悪くお手数お掛けしてしまいました。 VBAについてはまだまだ未熟者ですが、参考にさせていただきます。

  • narashingo
  • ベストアンサー率74% (10168/13677)
回答No.1

2013で確認してみましたが、いきなりは「置換する文字列」の窓には囲み線を含んで入らないようですね。 もし、囲み線のある文字列の種類が1つであれば、次のページにあるように、文書全体を選択の上、囲み線をまず一括削除してから、その文字列を"文字列"で置換する方法になるのでしょうか。 (文字の「囲み線」を一括削除) http://mbp-kanagawa.com/saglasie/column/11442/ 囲み線のある異なる複数の文字列がある場合は、最初の文字列をドラッグして選択した後に、Ctrlキーを押しながら、当該置換したい対象の囲み線のある文字列を順次ドラッグして選択できるようですから、その状態で一括削除してから、置換を実行する方法はあると思います。 ページ数が多いと、囲み線のある文字列を一括選択するのは少々大変なので、ページごとに処理をするのでしょうか。

yasuhito_s1
質問者

お礼

確認していただき有難うございます。 いろいろとご確認していただき恐縮ですが、不特定多数の囲み線があるため、抜けがあったり上手くいきませんでした。 お手数おかけしました。