【Word VBA】Wordファイルからスタイルを全てコピーするWordマクロ

2015年5月12日

先週末は、WordアドインWordワイルドカード(正規表現) のセミナーをいたしました。

セミナー後には、セミナーのまとめ資料を作っています。

その時に毎回、同じスタイルを別のファイルからコピーしています。

スタイルを設定したテンプレートを作ればコピーする手間は省けますよね。そのテンプレートファイルから新規文書を作ればいいので。

でも今は、新規文書を白紙で作成してベタ打ちした後で、既存のマニュアルやまとめ資料からスタイルを全てコピーし、そのスタイルに基づいてベタ打ちした書類を整えています。

そのときにこのマクロを使います。

このマクロでできること

Wordファイルを選択すると、そのファイルのスタイルを全て現在開かれているファイルにコピーします。
同じ名前のスタイルは上書きします。

Normal.dotmなど基準となるものを修正するわけではありません。現在開かれているファイルにのみスタイルを適用します。

マクロの解説

以前の記事で紹介しました「【Wordマクロ】ファイル選択ダイアログボックスの工夫 」を利用しています。

マクロの前半部分で、組み込みのダイアログボックスを用いてWordファイル(.doc, .docx)を選択します。

35行目で、選択したファイルのスタイルを、現在ファイルに全てコピーします。

マクロ


Sub スタイルを全てコピーするマクロ()

 Dim myFilePath As String ' Wordファイルパス
 Dim myFD As FileDialog
 
 Set myFD = Application.FileDialog(msoFileDialogFilePicker)

 '------------------------------------------------
 'Wordファイルの選択
 '------------------------------------------------
 With myFD
 
  .AllowMultiSelect = False
  .Title = "Wordファイルを選択してください"
 
  With .Filters
   .Clear
   .Add "すべてのWordファイル", "*.doc; *.docx"
  End With
 
  If .Show = -1 Then
   myFilePath = .SelectedItems(1)
   .Filters.Clear
  Else
   .Filters.Clear
   Exit Sub
  End If
 
 End With

 '------------------------------------------------
 'スタイルをコピーする
 '------------------------------------------------
 If Dir(myFilePath, vbNormal) <> "" Then
  ActiveDocument.CopyStylesFromTemplate Template:=myFilePath
 End If
 
 Set myFD = Nothing
 
End Sub

関連記事

【Wordマクロ】ファイル選択ダイアログボックスの工夫

-コード
-, ,