「空白セルに記号挿入」
https://www.moug.net/faq/viewtopic.php?t=80251
について、私の回答コメントに誤りがありましたので、訂正します。
3方式を採り上げました。
(1)セル毎に判断して修正する方式(質問者さんのコード)
(2)配列に取り込み、修正してから一括して書き込む方法
(3)SpecialCellsで空白セルを判定し、rng.Value = "_"とする方法。
私は、「(3)が最速」と書きましたが、誤りでした。
空白セルたちのfragmentationがどの程度になっているかに依存する話でした。
単純な構造をしている場合は、(3)が(1)(2)より速いことはあります。
しかし、例えば一行おきに交互に空白となっているような状況では、
(2)配列利用が最速でした。
しかも、10回ほど繰り返すと、なぜか(3)方式だけが、徐々に遅くなっていくのでした。
(原因不明です。)
いずれにせよ、ネイティブ処理は速いなあ、と即断したのが誤りでした。
訂正させて頂きます。どうも失礼しました。
もし、速度がクリティカルな場合は、実際のデータで比較することをお薦めします。
手動の一時利用によって、大抵の場合は1秒以下の話なので、議論にはならないとは思いますが。