1

以下を実行する VBA (Word) でマクロを作成するにはどうすればよいですか。

<ul><li>this is just a test</li><li>woop</li><li>test</li></ul>

を生成し、

  • これは単なるテストです
  • ウープ
  • テスト

ワード2010を使用。

この理由は、html がサードパーティのシステムからメールマージ経由で入ってくるためです。

これは、エンドユーザーのマクロを使用して行う必要があります。:)

詳細: Italic html タグを検索し、代わりに Font.Italic を挿入する次のようなものを作成する必要があります。

With ActiveDocument.Range.Find
    .ClearFormatting
    .MatchCase = False
    .MatchWildcards = True
    .Text = "[<][iI][>]*[<]/[iI][>]"
    .Replacement.Font.Italic = True
    .Execute Replace:=wdReplaceAll
End With

だから私の質問は、このようにドキュメントを実行して<ul>インスタンスを見つけ、各タグをループし、<li>タグにテキストを箇条書きリストとして挿入する方法です...

4

1 に答える 1

1

これが、あなたが望むものを達成するための簡単な方法です。

論理

  1. IE インスタンスを作成する
  2. .InnerHTMLをhtml文字列に設定します
  3. 内容を IE から Word にコピーする

要するに、IEに汚い仕事をさせてください。

コード

Option Explicit

Sub Sample()
    Dim ie As Object
    Dim strHtml As String

    strHtml = "<ul><li>this is just a test</li><li>woop</li><li>test</li></ul>"

    Set ie = CreateObject("InternetExplorer.Application")

    ie.Visible = True

    ie.Navigate "about:blank"

    ie.Document.body.InnerHTML = strHtml

    Do While ie.readystate <> 4: DoEvents: Loop

    ie.Document.body.createtextrange.execCommand "Copy"

    Selection.Paste
End Sub

スクリーンショット

ここに画像の説明を入力

于 2012-09-21T16:03:17.780 に答える