Wordには、「既存の文書から新規作成する」という機能がありますが、これをWordマクロで実行する場合のコードです。
詳細は、Excel MVPのよねさん の「既存の文書から新規作成する 」の記事に書かれていますからご覧ください。
既存文書を参考にして新しい文書を作る場合、間違って修正したものを保存してしまうと困りますよね。
私の場合、セミナーで用いるサンプル文書がありますが、セミナー中に間違ってサンプル文書に修正を加えてしまわないように、毎回新規文書としてファイルを開きます。便利です。
そのようなときに、この「既存の文書から新規作成する」という機能を使います。
Wordに機能があるのでわざわざマクロにしなくてもいいのですが(汗)、別の用途のマクロの途中で使っています。
<目次>
マクロの解説
11行目の FileDialog(msoFileDialogFilePicker) というオブジェクトを用いて、ファイルのパスを取得します。
[ファイルを開く] ダイアログを起動して、そこに表示されるファイルの種類を指定できます。今回は、Word文書のみ開きたいので、Filtersプロパティで指定します。
選択したファイルを基に、新規ファイルを作ります。
Templateとして.dotや.dotxのひな形ファイルを指定したくなるのですが、ここに通常のWord文書を指定してもいいのです。
24行目の Documents.Add Template:=.SelectedItems(1)
.SelectedItems(1)プロパティにて、ダイアログで開かれているファイルのパスを取得してテンプレートに設定しました。
すると、この選択した文書と全く同じ(ページ設定も文書の内容も)ファイルが新たに作成されます。
マクロ
Sub ファイル作成_既存ファイルから() Dim myFD As FileDialog If Application.Version < 11 Then MsgBox "Word 2002以前では動作しません。" Exit Sub End If 'ファイルの選択ダイアログ Set myFD = Application.FileDialog(msoFileDialogFilePicker) With myFD .AllowMultiSelect = False With .Filters 'ファイルの種類をクリア .Clear 'ファイルの種類を追加 .Add "Word文書", "*.doc; *.docx" End With If .Show = -1 Then Documents.Add Template:=.SelectedItems(1) End If End With Set myFD = Nothing End Sub