質問: excel文字列中の太字(bold)部分のみ文字色を一括して変換する方法 excelで英単語リストを作成しています。 セルの中に文字列で例文を書いて、重要単語部分は太字(bold)にしているのですが、 太字部分を白色に変更して練習帳を作成したいと考えています。 (変換前) millions of people suffer from insomnia these day. (変換前) millions of people suffer from these day. ※この場合、セル中で"insomunia"のみが太字になっています。 例文数が多い(1000以上)ので、一括で変換できる方法を探しています。 詳しい方がいらっしゃいましたら、是非御教授下さい。 よろしくお願い致します。
回答: 太字の文字を「白色」にするのは簡単なのですが、問題は「太字だったところを太字ではなくした」場合の処理です。当然見える文字にしなくてはなりませんね。 太字の文字は「白色」にする。太字でなくて「白色」の文字は「黒(自動)」にする。はじめから「赤」や「青」の文字はそのままにするという考え方でよいですか? 以下のマクロをalt+f11でvbe画面を開き、左上のvba projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はalt+f8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。 sub macro5() dim rng as range dim ptr as long application.screenupdating = false for each rng in activesheet.cells.specialcells(xlcelltypeconstants, 3) for ptr = 1 to len(rng.value) if rng.characters(ptr, 1).font.bold = true then rng.characters(ptr, 1).font.colorindex = 2 else if rng.characters(ptr, 1).font.colorindex = 2 then rng.font.colorindex = xlautomatic end if end if next ptr next rng application.screenupdating = true end sub マクロの実行結果は元に戻せませんから、必ずファイルのコピーを取ってから実行してみてください