先日の「【コード】既存の文書から新規作成する」の応用技です。
前回は、既存のWord文書を選択し、その文書に基づいて新規文書を作成しました。
今回は、現在開かれている文書に基づいて、新規文書を作成します。
文書の内容をコピーして新しい文書に貼り付けると、文字や表、コメントなどの情報は貼り付けられます。しかし、余白などのページ設定を貼り付けることはできません。
このマクロは、現在の文書と全く同一の文書を作成する場合に役に立つと思います。
異なるセクションに異なるページ設定がなされているような複雑な文書がすでにあり、この文書と同じようなものを作成する場合に役立ちますね。
現在文書を「別名で保存」してもいいのですが(笑)。
このマクロでできること
マクロを実行すると、現在カーソルが置かれている文書(フォーカスがある文書)の保存された内容に基づいて新規文書が作成されます。
文書が保存されていない場合には実行できません。
マクロの解説
9行目:文書が保存されているか否かを、文書の保存先のパスを取得することで判定します。
10行目:文書を作成するときのテンプレートを、現在の開かれている文書のパスにします。
マクロ
Sub ファイル作成_現在ファイルから() '文書が開かれていない場合には終了 If Documents.Count = 0 Then Exit Sub End If '文書が保存されている場合に実行 If ActiveDocument.Path <> "" Then Documents.Add Template:=ActiveDocument.FullName Else MsgBox "現在開かれているファイルを保存してから実行してください。" End If End Sub