Home > C# > DevTool > VBA

山かっこを変換する

概要

Wordで、山かっこ<>を&lt;&gt;に変換するマクロです。

テキストエディタで、マクロを組むのが一般的なのでしょうが、Wordマクロにして見ました。htmlを記述する際に役立ちます。

山かっこ<>を&lt;&gt;に変換するマクロ


Sub カギカッコ変換()
'複数の検索語を、対応する置換語に一括置換します。
    Dim sWrds() As Variant, rWrds() As Variant
    Dim Num As Integer
    '検索文字列
    sWrds = Array("<", ">")
    '置換文字列
    rWrds = Array("&lt;", "&gt;")
    With ActiveDocument.Content.Find
        'LBound関数は与えられた配列のインディクスの最小値を返す(ここでは0)
        'UBound関数は与えられた配列のインディクスの最大値を返す(ここでは1)
        For Num = LBound(sWrds) To UBound(sWrds)
            .Text = sWrds(Num)
            .Replacement.Text = rWrds(Num)
            .Execute Replace:=wdReplaceAll
        Next Num
    End With
End Sub

このコードでは、<>しかチェックしていません。

逆変換:&lt;&gt;をに山かっこ<>変換するマクロ


Sub カギカッコ逆変換()
'複数の検索語を、対応する置換語に一括置換します。
    Dim sWrds() As Variant, rWrds() As Variant
    Dim Num As Integer
    '検索文字列
    sWrds = Array("&lt;", "&gt;")
    '置換文字列
    rWrds = Array("<", ">")
    With ActiveDocument.Content.Find
        'LBound関数は与えられた配列のインディクスの最小値を返す(ここでは0)
        'UBound関数は与えられた配列のインディクスの最大値を返す(ここでは1)
        For Num = LBound(sWrds) To UBound(sWrds)
            .Text = sWrds(Num)
            .Replacement.Text = rWrds(Num)
            .Execute Replace:=wdReplaceAll
        Next Num
    End With
End Sub

もとに戻すマクロです。マクロは、Undoで戻せないので、もとに戻すマクロも考えておく必要があります。

単純に入れ替えてますので、確実にもとに戻るとは限りません。

関連書籍

 

Wordのバージョンによる注意点

Word 2007から以降のWordとそれ以前では、VBAの記述の仕方が異なる機能が多いので、 古いWord VBAを、Word 2007以降で使用する場合、基本的に変更が必要になると思ってください。
このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」