次のコードは、終了時に、数字(ここでは50にハードコードされ、特定の行にはフォーカスしません)のユーザー入力を取得するはずです。に);シート内のその特定の行を調べ、単語文書の空白のテンプレートをコピーし、そのデータを特定の順序で単語文書に送り、次に単語文書を印刷する。excel vbaからワードドキュメントを印刷
以下のコードは、Excelを使用してC:\ original \ path \にある単語文書をC:\ original \ path \にコピーしています。残念ながら、私はExcelでこれを実行しようとするたびに、Excelがハングし、私はそれを再起動する必要があります。
なぜですか?何をする必要がありますか? Microsoftワードオブジェクトライブラリ14は、VBAエディタで参照されます。
Sub UpdateActionsRows()
Dim userInput As Long
userInput = 50
' set up word application, document
Dim objWord As Word.Application
Dim objDoc As Document
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Open("C:\original\path\here")
objDoc.Close
FileCopy objDoc, "C:\original\path\there"
objWord.Quit
End Sub
私はそれをテストしていないと、それはより良い書き込むことができますが、うまくいけば動作します:
Sub UpdateActionsRows()
Dim userInput As Long
userInput = 50
' set up word application, document
Dim objWord As Word.Application
Dim objDoc As Document
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Open("C:\original\path\here")
copyFile objDoc, userInput
objDoc.Close
objWord.Quit
End Sub
コピーファイル
Function copyFile(sourceFile As Document, inputRows As Long)
Dim fso As Object
Set fso = VBA.CreateObject("Scripting.FileSystemObject")
Dim targetFile As String
targetFile = "C:\original\file\there.docx"
fso.copyFile sourceFile, targetFile
End Function
あなたは既に開いているコピーしようとしているファイルがあります。開く前にコピーするか、「SaveAs」を使用する必要があります。 –
@ WayneG.Dunnは7秒で私を打ち負かしました:) – Vityata
wayne G dunnは正しいですか? – bdpolinsky