Wordで「ですます調」から「である調」に変換したいときはないでしょうか。
例えば議事録などで「ですます調」と「である調」が混合され、「である調」に統一したいときなどです。
そんなときに悩ませることは、
・Wordで「ですます調」から「である調」に変換することを手作業でなく一括で処理したいが方法がわからない。
ですね。
特に「である調」に統一したい文章が大量にあったり、複数のドキュメントだった場合はうんざりしますよね。
今回はそんなお悩みを解決する、
Word VBAを使い、Wordドキュメント内の「ですます調」から「である調」に一括で変換する方法
についてまとめます。
もくじ
Word VBAで「ですます調」から「である調」へ一括変換するイメージ
「である調」へ一括変換する「ですます調」の文章が記載されたWordドキュメントを用意します。
こんな感じです。
「ですます調」と「である調」のパターンが記載されているCSVファイルを用意します。
CSVファイルを設定したVBAをWordへ実装します。
VBAを実行すると、
「ですます調」から「である調」へ一括変換されます。
カンタンですね。
早速使ってみましょう。
サンプルのWordドキュメントを準備する
「である調」へ一括変換する「ですます調」の文章が記載されたWordドキュメントを用意しましょう。
できたら、任意の場所へ保存します。
「ですます調」と「である調」のパターンが記載されているCSVファイルを用意する
こちらの内容をコピーして、文字コードをShift-JISにしたCSV形式で保存します。
しましょう。,しよう。
きましょう。,こう。
りましょう。,ろう。
できました。,できた。
できます。,できる。
あります。,ある。
なります。,なる。
きました。,くる。
ませんが,ないが
でしょう。,だろう。
りません。,らない。
みました。,みた。
ましょう。,よう。
でした。,だった。
ですが,だが
います。,いる。
がります。,がる。
ないです。,ない。
無いです。,無い。
れます。,れる。
きます。,くる。
します。,する。
ません。,ない。
ていた。,いた。
ました。,た。
ります。,る。
ます。,る。
です。,だ。
します。,する。
です。,である。
おります。,いる。
いきます。,いく。
参ります。,いく。
となります。,なる。
なります。,なる
ください。,ほしい。
ないである。,ない。
ございる。,ある。
ないである。,ない。
でした。,であった。
おりません。,ない。
しました。,した。
たである。,た。
なってう。,なっている。
してください。,してほしい。
るんだ。,る。
りた。,った。
VBAを実装する
続いてWordのVisual Basic EditorへVBAを実装します。
今回のVBAは「ですます調」と「である調」のパターンが記載されているCSVファイルを読み込み、そのリスト分置換処理を繰り返すというものになります。
実装にあたり、変更頂きたい箇所は以下です。
・置換リストファイルを指定する
置換リストを格納したパスに書き換えをお願いします。
csvFilePass = “C:\Users\****\Documents\****\である変換.csv”
VBAソースコードは以下の通りです。
Sub 複数の文字列を置換()
Dim csvFilePass
Dim strBuf As String
Dim tmp As Variant
'置換リストファイルを指定します。
csvFilePass = "C:\Users\****\Documents\****\である変換.csv"
Open csvFilePass For Input As #1
'CSV内の行数分置換処理を繰り返します。
Do Until EOF(1)
'1行分のデータを読み込みます。
Line Input #1, strBuf
'文字列を","で分割します。
tmp = Split(strBuf, ",")
'検索・置換の設定をおこないます。
With Selection.Find
.ClearFormatting '検索条件から書式を削除します。
.Replacement.ClearFormatting '置換対象の書式を削除します。
.Text = tmp(0) '検索ワードを代入します。
.Replacement.Text = tmp(1) '置換ワードを代入します。
.Forward = True '文書に対して末尾の方向(順方向)に検索します。
.Wrap = wdFindContinue '先頭(または末尾)に戻って検索をします。
.Format = False 'フォーマット変更を有効する(True)、有効にしない(False)を設定します。
.MatchCase = True '英語の大文字と小文字の区別する(True)、区別しない(False)を設定します。
.MatchWholeWord = False '単語全体を検索対象としない設定にします。
.MatchByte = False '半角と全角を区別する(True)、区別しない(False)を設定します。
.MatchAllWordForms = False '英単語の異なる活用形検索を有効する(True)、有効にしない(False)を設定します。
.MatchWildcards = False 'ワイルドカード(?*など任意の文字)を使った検索を有効する(True)、有効にしない(False)を設定します。
.MatchSoundsLike = False '誤った置換を防止するため、英語のあいまいな検索はOFFにします。
.MatchFuzzy = False '誤った置換を防止するため、日本語のあいまいな検索はOFFにします。
End With
'置換を実行(全て置換)します。
Selection.Find.Execute Replace:=wdReplaceAll
Loop
Close #1
MsgBox "置換が完了しました。"
End Sub
実装手順は以下の通りです。
①Wordを新規に開き、「開発」タブをクリックし、
「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。
②標準モジュールを追加します。
左ペインの「Nomal」を右クリックし、「挿入」、「標準モジュール」を選択します。
③右ペインのウインドウに上記のVBAを入力します。
こちらで完了です。
VBAを実行する
早速VBAの実行をしてみましょう。
①「開発」タブの「マクロ」をクリックし「複数の文字列を置換」を選択し、「実行」をクリックします。
②「「である調」への置換が完了しました。」が表示されたら、
置換されていることを確認します。
変更前
変更後
はい!
置換されていますね!
VBAの説明
置換リストCSVファイルを開きます。
CSV内の行数分置換処理を繰り返します。
1行分のデータを読み込みstrBufへ格納します。
文字列を”,”で分割し配列tmpへ格納します。
検索時に指定した文字列から文字列および段落の書式を削除します。
.Replacement.ClearFormatting
検索・置換の設定をおこないます。
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = True
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchFuzzy = False
Findメソッドのプロパティ設定値の詳細は以下の通りです。
プロパティ | 説明 |
---|---|
Forward | (True)指定で文書に対して末尾の方向(順方向)に検索します。(False)で逆順です。 |
Wrap | 「wdFindContinue」先頭(または末尾)に戻って検索をします。「wdFindAsk」で戻って検索をします。 |
Format | フォーマット変更を有効する(True)、有効にしない(False)を設定します。 |
MatchCase | 英語の大文字と小文字の区別する(True)、区別しない(False)を設定します。 |
MatchWholeWord | 単語全体を検索対象とする(True)、しない(False)を設定します。 |
MatchByte | 半角と全角を区別する(True)、区別しない(False)を設定します。 |
MatchAllWordForms | 英単語の異なる活用形検索を有効する(True)、有効にしない(False)を設定します。 |
MatchWildcards | ワイルドカード(?*など任意の文字)を使った検索を有効する(True)、有効にしない(False)を設定します。 |
MatchSoundsLike | 英語のあいまい検索を有効する(True)、有効にしない(False)を設定します。誤った置換を防止するため、英語のあいまいな検索はOFFにします。 |
MatchFuzzy | 日本語のあいまい検索を有効する(True)、有効にしない(False)を設定します。誤った置換を防止するため、日本語のあいまいな検索はOFFにします |
置換を全て置換で実行します。
なお、定数の種類は以下の通りです。
定数 | 置換の方法 |
---|---|
wdReplaceNone | 置換しない(既定値) |
wdReplaceOne | 1つだけ置換 |
wdReplaceAll | 全て置換 |
さいごに
いかがでしょうか。
今回は、
Word VBAを使い、Wordドキュメント内の「ですます調」から「である調」に一括で変換する方法
についてまとめました。
今回のVBAと置換リストをうまく活用すれば、短期間で処理ができるので、ぜひ活用いただければと思います。
コメントを残す