ExcelからWordの終わりにVBAを貼り付けます
-
23-12-2019 - |
質問
全体的な目的は、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
. 所属していません StackOverflow