PR

 では次に、複数の文書を開くだけでなく、その内容を1つのファイルにまとめるマクロを見てみましょう。例えば複数の人から送られてきたWord文書を1つに集約する際などに便利です。

 以下は、選択したフォルダー内のWordファイルを、1つの新規ファイルに書き出すマクロです。

Sub Wordファイルの統合()    Dim myFileName As String    Dim myFolderPath As String    Dim myFilePath As String    Dim myMessage As String    Dim i As Integer    Dim myDoc As Document    Dim objShell As Object    Dim objFolder As Object    Dim myPosition As Integer    myMessage = "Wordファイルを統合するフォルダを選択してください"    Set objShell = CreateObject("Shell.Application")    Set objFolder = objShell.BrowseForFolder(0, myMessage, &H1 + &H200)    If Not objFolder Is Nothing Then        myFolderPath = objFolder.Items.Item.Path    Else        End    End If    myFileName = Dir(myFolderPath & "\*.doc", vbNormal)    Set myDoc = Documents.Add    Do While myFileName <> ""        myFilePath = myFolderPath & "\" & myFileName        With Documents.Open(FileName:=myFilePath, Visible:=False, ReadOnly:=True)            .Range.Copy            .Close savechanges:=wdDoNotSaveChanges        End With        myDoc.Activate        With Selection            .EndKey Unit:=wdStory            .Font.Color = wdColorRed            .TypeText Text:=myFileName            myPosition = InStrRev(myFileName, ".") - 1            myFileName = Replace(myFileName, " ", "_", , , vbTextCompare)            If myPosition > 33 Then myPosition = 33            On Error Resume Next            myDoc.Bookmarks.Add Name:="【ファイル名】" & Left(myFileName, myPosition)            If Err = 5828 Then                i = i + 1                myDoc.Bookmarks.Add Name:="※:ファイル名を表示できません。" & i                Err.Clear            End If            .TypeParagraph            .Paste            .InsertBreak Type:=wdPageBreak        End With        myFileName = Dir()    Loop    myDoc.Range(0, 0).Select    Set myDoc = Nothing    Set objShell = Nothing    Set objFolder = NothingEnd Sub

 実行すると、以下のダイアログボックスが表示されます。この画面から、ファイルを統合するフォルダーを選択します。

Wordファイルが保存されているフォルダーを選択する
Wordファイルが保存されているフォルダーを選択する
[画像のクリックで拡大表示]

 目的のフォルダーを指定して「OK」ボタンを押すと、そのフォルダー内のWordファイルの中身を、新規で開いた文書にコピー・アンド・ペーストします。また、それぞれの冒頭に赤文字でファイル名を表示します。

 赤文字のファイル名には、「ブックマーク」を付けています。ブックマークとは、文書中に目印を付けておくことで、あとからその位置にすぐに移動できるようにする機能です。多くのファイルを1つにまとめた場合などにも、目的のファイルの内容にすぐにジャンプできます。例えばWord 2010の場合は、「挿入」タブの「ブックマーク」ボタンからブックマークの一覧を確認し、任意のブックマークにジャンプすることが可能です。

 なお、このマクロでコピー・アンド・ペーストするのは内容だけで、ページの設定までは含みません。貼り付け先となる新規文書の上下左右の余白は通常の新規ファイルのままですから、余白の調整をしてある文書を貼り付けると、表示が崩れることがあります。