shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Word】ファイル内にある余分な水平線を一括削除するVBAのサンプル

Wordファイルで、ファイル内にある余分な図形タイプ(水平線)を一括で削除するVBAサンプル。

変更対象の図は、行内に設定された図(インライン図形)で、水平線のタイプ。

 

Sub 水平線の一括変更()
    
    Dim 画像 As Object
    For Each 画像 In ActiveDocument.InlineShapes '行内の図が対象
        If 画像.Type = wdInlineShapeHorizontalLine Then '水平線のみ抽出
            画像.Delete
        End If
    Next

End Sub

 

作成の背景は、PC画面の操作マニュアルの作成に便利な「ステップ記録ツール」で作成したmhtファイルをWordで編集する際に、文章内にある多くの水平線が余分だったため。

shikumika.org

 

Wordには、「類似した書式の文字列を選択」という機能があるので「ステップ記録ツール」で作成したmhtファイルの水平線であれば、VBAを使用しなくても期待に近い削除は可能。水平線以外の一部の”不要な改行”も削除されてしまうが、目的は概ね達成できる。

support.microsoft.com

 

ただし、「ステップ記録ツール」で作成したmhtファイルの画像サイズ変更など含めた一括処理を作成したかったのでVBAで対応。

shikumika.org