2016-06-22 13 views
0

EXCELには、Word文書Aを開いて特定のページの内容を新しい文書にコピーするために、VBAコードがあります。現在、私はそのテキストをコピーすることができます。 contextformattingの両方をコピーする方法が不思議です。以下は私の現在のコードです。私は何か提案を感謝します!VBAコードでWord文書のコンテキストと書式をEXCELでコピーする

Dim objWord As Word.Application 
Dim objDoc As Word.Document, newDoc As Word.Document 
Dim r As Word.Range, r2 As Word.Range 

Set objWord = CreateObject("Word.Application") 'or Set objWord = new Word.Application 

Set objDoc = objWord.Documents.Open(FolderpathToDocumentA) 
Set newDoc = objWord.Documents.Add 
newDoc.SaveAs FolderpathToDocumentB 

Set r = objDoc.GoTo(what:=wdGoToPage, which:=wdGoToAbsolute, Name:=2) 
r.End = objDoc.Range.End 

'copy context from Document A 
r.Copy 
newDoc.Content.InsertBreak Type:=wdSectionBreakNextPage 
newDoc.Range(newDoc.Content.Start, newDoc.Content.Start).Paste 
newDoc.Content.InsertBefore vbCrLf 

newDoc.Save 
objWord.Quit 

それはあなたが必要なものをやるん:ここ

Set objWord = CreateObject("Word.Application") 
Set objDoc = objWord.Documents.Add 

objWord.Visible = True 
Set objSelection = objWord.Selection 

'Prepare Document B 
objDoc.SaveAs (Folderpath to Document B) 

Set objTempWord = CreateObject("Word.Application") 
Set tempDoc = objWord.Documents.Open(Folderpath to Document A) 

'copy context from Document A   
With tempDoc.Application 
    .Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Name:="2" 
    .Selection.EndKey Unit:=wdStory, Extend:=wdExtend 
    .Selection.Copy 
End With 

objSelection.TypeParagraph 
objSelection.Paste 
objSelection.InsertBreak Type:=wdSectionBreakNextPage 
tempDoc.Close 

objDoc.Application.Statusbar = False 
objDoc.Save 
+0

あなたのコードは私のためにテキストと書式の両方をコピーしました。あなたはワークブックを秀でていますが、Microsoft Word ##。#Object Libraryにリファレンスがありますか? –

+0

これはなぜですか? 'Set objTempWord = CreateObject(" Word.Application ")'? – LocEngineer

+0

@ThomasInzina、ご意見ありがとうございます。しかし、私はラインスペースが異なっていることを発見しました(フォントサイズは同じままです)。 –

答えて

1

これは余分余分Applicationオブジェクトなしと選択を使用せずに、同じでしょうか?

+0

ありがとう!あなたのバージョンは非常にきれいですが、それでも行間を継承せずにコンテキストをコピーしました... –

+0

私は魔法の言葉が "段落スタイル"だと思います。コピーしているドキュメントは、標準のスタイルを使用して、ライン間隔のデフォルトの標準とは異なりますか?新しい文書はデフォルトの行間隔に戻ります。段落スタイルを最初にコピーしたいかもしれません。 – LocEngineer

+0

実際、あなたのことが正しいと思います。元の文書は単語テンプレートを使用して生成されました。私はそのテンプレートのコピーを作成してテキストを貼り付けようとしています。 –

関連する問題