Excel マクロ: 文字範囲を太字に設定するとテキストが文字化けする

Excel マクロ: 文字範囲を太字に設定するとテキストが文字化けする

私がやりたいことは次のとおりです。約 1400 行のデータがあり、最後の列には大量のテキストが含まれています。これが私の言いたいことを示す画像です。一度に投稿できるリンクは 2 つだけなので、画像は削除しました。

さて、テキストを読みやすくするために、いくつかの単語を太字にしたいと思います。

現在、次のマクロがあります:

Dim range As range
Set range = Application.Selection

Dim boldwords As Variant
boldwords = Array("Atemschutz:", "Körperschutz:", "Handschutz:", "Augenschutz:")


Dim cell As range
For Each cell In range
    For Each bword In boldwords
        foundword = InStr(1, cell.Text, bword, VbCompareMethod.vbTextCompare)
        If foundword <> 0 Then
            cell.Characters(foundword, Len(bworld)).Font.Bold = True
        End If
    Next
Next
  1. 選択されたすべてのセルをループする
  2. 太字にするべきすべての単語をループし、それらがセルに含まれているかどうかを確認します。
  3. もしそうなら太字にする

問題は、実行するとテキストが完全に太字になったり、文字化けしたりすることですこのような または、各文字を別の行に配置します。その後、Excel の動作が遅くなったり、フリーズしたり、場合によってはクラッシュしたりします。

これを防ぐために何ができるでしょうか?

更新: Siphor が言及した変数名を修正した後、テキストは文字化けしなくなりましたが、まだ別々の行に分割されることがあります。私の言いたいことを示す画像を以下に示します。クリックしてください

答え1

それはあなたのコードのバグだと思います。レン(bworld)すべきであるレン(bword)Vba オプションで変数宣言が必要 (Option Explicit) を有効にする必要があります。これは、このようなバグを見つけるのに役立ちます。

関連情報