2017-06-28 11 views
0

Microsoft Word OLEオブジェクトが埋め込まれたExcelシートがあります。VBAを使用したExcelで、開いていない単語OLEオブジェクトの内容をコピーします。

埋め込まれたWord文書には、特定のセルで更新する必要があるフィールドがいくつかあります。

Iはその埋め込まれた文書の内容を印刷する必要があり、ことなく可視文書開口及び「更新文書はを促します」。

私の問題は、Wordの埋め込みOLEオブジェクトの内容を、更新のプロンプトを表示せずに、目に見えないWord文書にコピーすることです。

私はこれを試してみてください。

このコードは、宛先印刷可能なドキュメントに埋め込まれたワード文書の周りにボックスを描きます。

埋め込みドキュメントの内容をコピーしたり、埋め込みドキュメントを印刷したりする際に、プロンプトウィンドウと表示ウィンドウを更新せずにお手伝いください。

Sub PrintIt(P As String, w, h As Double) 
    Dim objWord As Object 
    Dim ObjDoc As Object 

    Application.ScreenUpdating = False 

    Set objWord = CreateObject("Word.Application") 
    objWord.Visible = False 

    ActiveSheet.OLEObjects(P).Copy 

    Set ObjDoc = objWord.Documents.Add 
    ObjDoc.PageSetup.PageWidth = objWord.CentimetersToPoints(w) 
    ObjDoc.PageSetup.PageHeight = objWord.CentimetersToPoints(h) 
    ObjDoc.Content.Paste 

    ObjDoc.PrintOut Background:=False 
    ObjDoc.PrintOut 

    objWord.Quit SaveChanges:=False 
    Application.ScreenUpdating = True 
End Sub 'Print it 
+0

私はあなたがそれを開くことなくそれを行うことができるかどうかわかりませんか? [Opening](https://stackoverflow.com/questions/10512560/save-embedded-word-doc-as-pdf)の何が問題なのですか? –

+0

フォームの情報を印刷するための準備をしています。美しさのために、特定のセルからの情報を取得し、フォーム上の適切な場所に印刷する必要があります。 – mgae2m

+0

'o form'?私は最初のコメントに投稿したリンクを見ました –

答えて

0
Sub PrintIt(P As String) 
Dim objWord As Object 
Dim ObjDoc As Object 
Dim Oshp As Object 

Application.ScreenUpdating = False 

ActiveSheet.OLEObjects(P).Activate 
Set objWord = GetObject(, "Word.Application") 
objWord.Visible = False 

Set ObjDoc = objWord.ActiveDocument 

ObjDoc.Fields.Update 
For Each Oshp In ObjDoc.Content.ShapeRange 
    Oshp.TextFrame.TextRange.Fields.Update 
Next 

ObjDoc.PrintOut Background:=False 
ObjDoc.PrintOut 

objWord.Quit SaveChanges:=False 
Application.ScreenUpdating = True 
End Sub 'Print it 
関連する問題