2010年のMicrosoft ExcelでVBAを使用してExcelからのコントロールワード
多くの場合、ExcelファイルからWord文書にデータをコピーする必要があります。これは、マクロを使用して非常に簡単に行うことができます。マクロは、新しい/既存のワードdocを開き、内容をコピーしてから、ワードdocを保存して閉じます。これがどのように行われるかを見てみましょう。
使用できるコードは– Option Explicit _Sub CreateNewWordDoc()
Dim i As Integer Dim wrdApp As Object、wrdDoc As Object Set wrdApp = CreateObject(“ Word.Application”)
wrdApp.Visible = True Set wrdDoc = wrdApp.Documents.Add With wrdDoc For i = 1 to 100 .Content.InsertAfter“ Here is a example test line#”&i .Content.InsertParagraphAfter Next i If Dir(“ B:\ Test \ MyNewWordDoc.docx”)<>“”次に、“ B:\ Test \ MyNewWordDoc.docx” .SaveAs(“ B:\ Test \ MyNewWordDoc.docx”)を強制終了します
Set wrdApp = CreateObject(“ Word.Application”) Wordがシステムですでに実行されている場合、_CreateObject_はWordの新しいインスタンスを作成します。したがって、この行は、オブジェクト変数wrdAppをWordアプリケーションに割り当てます。これはコードの後半で使用できます。 。
_wrdApp.Visible = True_新しく作成されたWordのインスタンスは、作成時に表示されません。表示するには、wrdApp.Visible = Trueを設定して表示する必要があります。
Set wrdDoc = wrdApp.Documents.Add Wordアプリケーションの新しいインスタンスを作成しましたが、空白のWordドキュメントをまだ開いていません。したがって、このコマンドは新しいWord文書を開きます。オブジェクトwrdDocがこの新しいドキュメントに割り当てられているため、コードの後半で使用できます。
新しいブックを開きたくないが既存のブックを開く場合は、この行を_Set wrdDoc = wrdApp.Documents.Open(“ B:\ My Documents \ WordDocs \ Doc1.docx”)_に置き換えることができます。指定された場所に保存されている既存のWord文書。
_WithwrdDoc….EndWith_これはwrdDocオブジェクトで完全に機能する「With」ループです。このループを開くと、このループで「wrdDoc」というテキストを再度繰り返す必要はありません。直接開始できます。ドット(「。」)
wrdDocに関連するオブジェクトの前。このループは_EndWith_ステートメントで終了します。 End Withステートメントを入力すると、wrdDocの後のオブジェクトを「。」だけで参照することはできません。
_For i = 1〜100 .Content.InsertAfter「ここにテスト行番号の例があります」&i .Content.InsertParagraphAfter Nexti_これは「For」ループです。 1から100までインクリメントし、インクリメントするたびに、「テスト行番号の例です」というテキストの行を挿入してから、インクリメント番号を追加します。次に、改行/段落ブレークを挿入して、次のインクリメントがに表示されるようにします。次の行、新しい段落のように。
したがって、forループの状態はFor i = 1から100であるため、このプロセスは100回繰り返されます。これが得られる出力です–
If Dir(“ B:\ Test \ MyNewWordDoc.Docx”)<>“” Then Kill“ B:\ Test \ MyNewWordDoc.docx” _ _ .SaveAs(“ B:\ Test \ MyNewWordDoc.docx”) .Close 「For」ループが完了すると、コードはファイルMyNewWordDoc.docxが存在するかどうかを確認します。存在する場合は削除します。次に、新しいファイルを同じ名前で保存し、ファイルを閉じます。
wrdApp.Quit Set wrdDoc = Nothing Set wrdApp = Nothing Wordアプリケーションが閉じられ、作成された2つのオブジェクトが解放されるか、「Nothing」に設定されるため、これらのオブジェクトが占有していたメモリが解放されます。これは、ExcelからWordへのコンテンツのコピーを処理するコード全体です。