Wordで赤/緑シートに対応する複数単語の暗記シートを作りたいときはないでしょうか。
例えば単語を覚えたいときに文章中の単語部分の文字色を赤や緑に変更したいときなどです。
そんなときに悩ませることは、
・Wordで赤/緑シートに対応する複数単語の暗記シートを手作業でなく一括で作成したいが方法がわからない。
ですね。
今回はそんなお悩みを解決する、
Word VBAを使い、赤/緑シートに対応する複数単語の暗記シートを作る方法
についてまとめます。
もくじ
Word VBAで赤/緑シートに対応する複数単語の暗記シートを作るイメージ
前回の【Word VBA】一括置換と同時に書式変更や蛍光ペンをひく方法!色やサイズ変更も!で作成した蛍光ペン部分の色を赤/緑シートに対応させる内容となります。
覚えたい単語が含まれる文章が記載されたWordドキュメントを用意します。
サンプルは憲法の前文です。
覚えたい単語がリストアップされているCSVファイルを用意します。
サンプルは実際の試験問題の解答からリストアップしてみました。
CSVファイルを設定したVBAをWordへ実装しVBAを実行すると、
CSVファイルに記載した単語の箇所が蛍光ペンでハイライト表示され、さらに文字色が赤に変換され、強調のため文字サイズも大きくできます。
緑文字も対応しています。
赤文字には赤シートで、緑文字には緑シートをあてるとその部分が見えなくなるという形になります。
カラー印刷してもよし、タブレットでみてもよし。
使い方は色々ですね。
さらに、さらに文字サイズをより柔軟に設定できるようにしてみました。
CSVの2列目に文字サイズをポイント指定すると、
文字サイズがWordに反映されました。
特に覚えたい単語だったり、重要な単語は大きくするとインパクトあり忘れにくくなりますね!
そんな便利な暗記シートがワンクリックでできてしまうわけです。
暗記シートづくりに時間をかけたくないという方には最適ですね。
それでは、早速使ってみましょう。
サンプルのWordドキュメント、置換対象リストを準備する
まずはサンプルでWordドキュメント、置換対象リストを準備しましょう。
Wordドキュメントを準備する
サンプルは憲法の前文になります。
公務員試験などでよく使われるところですね。
できたら、任意の場所へ保存します。
覚えたい単語が記載されているCSVファイルを用意する
文章中にある覚えたい単語をリスト化し、文字コードをShift-JISにしたCSV形式で保存します。
赤シートに対応する複数単語の暗記シートを作るVBA
VBAを実装する
続いてWordのVisual Basic EditorへVBAを実装しましょう。
今回のVBAは前回の置換処理をベースに置換対象文字色を赤色にしています。
実装にあたり、変更頂きたい箇所は以下です。
・置換リストファイルを指定する
置換リストを格納したパスに書き換えをお願いします。
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, ",")
Options.DefaultHighlightColorIndex = wdYellow '蛍光ペン色:黄色(デフォルト)
'Options.DefaultHighlightColorIndex = wdBrightGreen '蛍光ペン色:緑
'Options.DefaultHighlightColorIndex = wdTurquoise '蛍光ペン色:水色
'Options.DefaultHighlightColorIndex = wdPink '蛍光ペン色:ピンク
'検索・置換の設定をおこないます。
With Selection.Find
.Format = True 'フォーマット変更を有効する(True)、有効にしない(False)を設定します。
.ClearFormatting '検索条件から書式を削除します。
.Replacement.ClearFormatting '置換対象の書式を削除します。
.Replacement.Highlight = True '置換対象を蛍光ペンで着色します。
.Replacement.Font.Bold = True '置換対象の書式を太字にします。
.Replacement.Font.Size = 18 '置換対象の文字サイズを変更します。
.Replacement.Font.Color = 1118719 '置換対象の文字色を変更します。(薄い赤)
'.Replacement.Font.Color = wdColorGreen '置換対象の文字色を変更します。(薄い緑)
.Text = tmp(0) '検索ワードを代入します。
.Replacement.Text = tmp(0) '置換ワードを代入します。
.Forward = True '文書に対して末尾の方向(順方向)に検索します。
.Wrap = wdFindContinue '先頭(または末尾)に戻って検索をします。
.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の説明
置換処理の説明についてはこちらの記事の説明をご参照ください。
今回追加した箇所は、Findメソッドの置換処理対象Replacementの蛍光ペンを意味するHighlightプロパティとなります。
「True」を指定することにより置換対象を蛍光ペンで着色する内容となります。
色はデフォルトの黄色となります。
黄色以外にも以下のコメントを外せばそれぞれの色に変更することができます。
‘Options.DefaultHighlightColorIndex = wdTurquoise ‘蛍光ペン色:水色
‘Options.DefaultHighlightColorIndex = wdPink ‘蛍光ペン色:ピンク
文字色は
で指定しています。
数値部分はカラーコードを10進数で表現したもので、若干明るい赤色を設定しています。
緑シートに対応する複数単語の暗記シートを作るVBA
次に緑シートに対応するため、置換対象文字色を緑色にする処理を加えていきます。
実装にあたり、変更頂きたい箇所は以下です。
こちらの「’」を外し有効化します。
実行してみましょう。
はい、置換対象文字色が緑色になりましたね!
置換対象文字色の変更に加え、文字サイズを変更するVBA
文字色置換処理と同時に文字サイズを変更する処理を加えてみましょう。
標準のフォントサイズが10.5ポイントなのでそれより大きくしてみます。
追加頂きたいコードは以下です。
CSVの2列目の値を文字サイズに充てています。
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, ",")
Options.DefaultHighlightColorIndex = wdYellow '蛍光ペン色:黄色(デフォルト)
'Options.DefaultHighlightColorIndex = wdBrightGreen '蛍光ペン色:緑
'Options.DefaultHighlightColorIndex = wdTurquoise '蛍光ペン色:水色
'Options.DefaultHighlightColorIndex = wdPink '蛍光ペン色:ピンク
'検索・置換の設定をおこないます。
With Selection.Find
.Format = True 'フォーマット変更を有効する(True)、有効にしない(False)を設定します。
.ClearFormatting '検索条件から書式を削除します。
.Replacement.ClearFormatting '置換対象の書式を削除します。
.Replacement.Highlight = True '置換対象を蛍光ペンで着色します。
.Replacement.Font.Bold = True '置換対象の書式を太字にします。
.Replacement.Font.Size = tmp(1) '置換対象の文字サイズを変更します。
'.Replacement.Font.Color = 1118719 '置換対象の文字色を変更します。(薄い赤)
.Replacement.Font.Color = wdColorGreen '置換対象の文字色を変更します。(薄い緑)
.Text = tmp(0) '検索ワードを代入します。
.Replacement.Text = tmp(0) '置換ワードを代入します。
.Forward = True '文書に対して末尾の方向(順方向)に検索します。
.Wrap = wdFindContinue '先頭(または末尾)に戻って検索をします。
.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
次にCSVファイルを開き、2列目に文字サイズをポイント単位で指定します。
準備ができたら実行してみましょう。
はい、文字サイズの強弱がつきましたね!
さいごに
いかがでしょうか。
今回は、
Word VBAを使い、赤/緑シートに対応する複数単語の暗記シートを作る方法
についてまとめました。
今回のVBAと置換リストをうまく活用すれば、短時間で処理ができるので、ぜひ活用いただければと思います。
コメントを残す