質問

全体的な目的は、ExcelでRTF形式のテキストを取得し、それをHTMLに変換することです。言葉を使って試したように、賢明な方法で対応するためにExcelが対応することができなかったことができませんでした。私は問題なく単語で変換することができ、セルOUT Excelをコピーし、単語に貼り付けてからコードを実行してフォーマットを望む方法に変換することによってプロセスを自動化することができます。

Excel VBAからWordに貼り付けたときに、ペーストは成功した場合に登録されていますが、それはEnd Subにジャンプします。

Sub webtext(r As String)
    Range(r).Copy
    Dim wordApp As Word.Application
    Dim wordDoc As Word.Document
    Set wordApp = CreateObject("word.Application")
    Set wordDoc = wordApp.Documents.Add
    wordApp.Visible = True
    wordApp.Activate

    wordApp.Selection.PasteSpecial

    'Any code here is missed out
    z = MsgBox("tada") 'this will never trigger
    x=5 'this will never set
    With wordDoc
        'Operations on the text pasted would happen here
        'but vba never gets here.
    End With

'Code jumps to here
End Sub
.

WordDocとWordAppの両方を使って貼り付け、貼り付けとpassepepealの両方を試してみましたが、常に同じ結果があります。

誰もがここで行っているのか、あるいは貼り付けの後に常に終わるのをやめる方法についてのアイデアを持っています。

編集:これをテストし、オフィス2010で取り組んできました。オフィス2013では動作しません。

役に立ちましたか?

解決 2

解決されているようです。VBAデバッガがWordAppセクションにヒットした後に何が起こっているかを理解できないため、コードがセクションの終わりにジャンプするように表示されます。

さらに、一般的な間にコードを押しているときには少し奇妙になる可能性があるため、任意の単語の変更は、時には正しく変わったときに少し奇妙に行うことができます。

テストと謝罪のための@brettdj。

他のヒント

のように私のためにうまくいった

しかし、この作品(AppActivateが冗長な)かどうかを確認するためにこれらの調整を試してみてください。

Sub StartIt()
Call webtext("a1:a10")
End Sub
.

main

Sub webtext(r As String)
    Range(r).Copy
    Dim wordApp As Word.Application
    Dim wordDoc As Word.Document
    Set wordApp = New Word.Application
    Set wordDoc = wordApp.Documents.Add
    wordApp.Visible = True

    With wordDoc
    .ActiveWindow.Selection.Paste
    End With

End Sub
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top