テキストファイルのインポートとブックマークの後に挿入(Microsoft Word)
Jamesには、Wordの外部に、定期的に小さなテキストファイルを自動的に作成するプログラムがあります。 (テキストファイルは常に同じ名前です。)Jamesは、テキストファイルをWord文書にインポートして、文書で定義したブックマークの直後に挿入できるマクロがあればよいと考えています。
この問題に取り組むには、いくつかの方法があります。テキストファイルの現在の内容を単純に含めることが目的の場合は、マクロは必要ありません。含めるファイルを参照するには、INCLUDETEXTフィールドを使用するだけです。ドキュメントのフィールドを更新するたびに、Wordが出力され、テキストファイルの現在の内容が取得され、ドキュメントに含まれます。
ただし、テキストファイルの現在の内容をドキュメントに継続的に追加する場合は、マクロを使用する必要があります。簡単な方法の1つは、マクロ自体の中でINCLUDETEXTフィールドを次のように使用することです。
Sub InsertTextFileAfterBookmark1() With Selection .GoTo what:=wdGoToBookmark, Name:="mybmk" .Fields.Add Range:=Selection.Range, _ Type:=wdFieldIncludeText, Text:="c:\\myfile.txt \c" _ & Chr(32) & "plaintext" & Chr(32) & "" .MoveLeft , 1 .Fields.Unlink .MoveEnd End With End Sub
マクロはブックマークの場所にジャンプし、INCLUDETEXTフィールドを挿入し、フィールドを選択してから、リンクを解除します。その結果、テキストファイルの内容がドキュメントに挿入されます。フィールドのリンクを解除する目的は、基本的に、INCLUDETEXTフィールドを削除し、そのフィールドの結果(ファイルの内容)に置き換えることです。
マクロを使用するには、ブックマークの名前と挿入するテキストファイルへのフルパスを反映するようにコードを変更するだけです。また、パス指定内で必ず二重の円記号を使用してください。これは、フィールドコードが正しく機能するために必要です。
もう1つのアプローチは、INCLUDETEXTフィールドを完全に省略し、ファイルの内容を挿入することです。次のバージョンのマクロはまさにそれを行います:
Sub InsertTextFileAfterBookmark2() If ActiveDocument.Bookmarks.Exists("mybmk") = True Then ActiveDocument.Bookmarks("mybmk").Select Selection.InsertFile FileName:="c:\myfile.txt" Else MsgBox "Bookmark ""mybmk"" does not exist!" End If End Sub
マクロはmybmkという名前のブックマークの存在をチェックし(これは変更できますし、変更する必要があります)、InsertFileメソッドを使用してファイルの内容を挿入します。書かれているように、マクロがブックマークを上書きすることを理解する必要があります。ブックマークが完全なままであることを確認したい場合は、ファイルを挿入する直前に、ブックマークをエンドポイントに折りたたむためのコード行を追加する必要があります。
Selection.Collapse Direction:=wdCollapseEnd
もちろん、マクロは好きなだけ凝ったものにすることができます。次の例は、ブックマークと挿入するファイルの内容の間に配置するスペースを指定するオプションを提供する、よりフル機能のマクロを示しています。あなたがする必要があるのは、あなたがそれをどのように操作したいかを反映するために、ポイント(1)、(2)、および(3)でマクロを調整することを確認することです。 (マクロのコメントは、期待とオプションが何であるかを説明しています。)
Sub InsertTextFileAfterBookmark3() ' This macro reads the contents of a specified text file ' and inserts the text after a particular bookmark in ' the active document. Dim InsertSpacer As Integer Dim FileContent As String ' (1) Pick a number to insert something between the ' bookmark and the inserted text as spacing: ' 0 = No space. Text is inserted immediately ' after the bookmark ' 1 = Insert one space between bookmark and text ' 2 = Insert paragraph mark between bookmark and text ' 3 = Insert 2 paragraph marks between bookmark ' and text InsertSpacer = 1 ' (2) Set a constant for the name of the file to import. ' Change the file name inside the quotes below to ' the full path and file name of the text file to ' import: Const TextFile As String = "c:\myfile.txt" ' (3) Change the file name in the quotes below to the ' name of the bookmark after which you want to ' insert the text: Const BookmarkName As String = "mybmk" ' Handle errors On Error GoTo Oops ' Open and grab contents of the file Open TextFile For Input As #1 FileContent = Input(LOF(1), #1) Close #1 ' Find the bookmark in the active document Selection.GoTo What:=wdGoToBookmark, Name:="MyBookmark" ' Move the cursor to the end of the bookmark Selection.MoveRight Unit:=wdCharacter, Count:=1 Select Case InsertSpacer Case 0 ' Do nothing. Text inserted immediately Case 1 ' Insert a space Selection.TypeText Text:=" " Case 2 'Insert a paragraph mark Selection.TypeText Text:=vbCrLf Case 3 'Insert two paragraph marks Selection.TypeText Text:=vbCrLf & vbCrLf End Select ' Insert the text file: Selection.TypeText Text:=FileContent Exit Sub Oops: Select Case Err.Number Case 55 ' File already open ' Close the file Close #1 ' Try again Resume Case 53 ' File not found NotFound = "Could not find the file named: " _ & Chr(34) & TextFile & Chr(34) & vbCrLf _ & vbCrLf & "Verify the file name and path " _ & "in the macro code after " _ & Chr(34) & "Const TextFile As String =" & Chr(34) MsgBox NotFound, vbOKOnly Case Else MsgBox "Error number: " & Err.Number & ", " _ & Err.Description, vbOKOnly End Select End Sub
注:
このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
link:/ wordribbon-WordTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]
。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(5908)は、Microsoft Word 2007、2010、2013、2016、2019、およびOffice 365のWordに適用されます。このヒントのバージョンは、ここにWordの古いメニューインターフェイス:
link:/ word-Importing_a_Text_File_and_Inserting_after_a_Bookmark [テキストファイルのインポートとブックマークの後に挿入]
。