LoginSignup
0
1

More than 3 years have passed since last update.

Wordのクイックパーツを使ったVBAコード

Posted at

WordのクイックパーツとContentControl

OfficeのWordでクイックパーツを入力した場合、そのパーツをVBA上でContentControlとして扱うことが出来る。実際に書いてみる。

発行日とタイトルのクイックパーツを用いたファイル保存マクロの作成

このマクロでやりたいこと

クイックパーツの「タイトル」「発行日」を使っているWord文書に対して以下の処理を行う。

  • 発行日を現在の日付に更新(yyyy/mm/dd)
  • タイトルを取得し、ファイル名を「yyyymmdd_タイトル」として保存するダイアログを開く。
Wordマクロ_Normal標準モジュール

Public Sub UpdateDate()

    Dim title As String

    Dim control As ContentControl

    '繰り返し処理でContentControlのtitleがクイックパーツ名と一致するか調べる。
    '一致した場合、該当したクイックパーツを使って処理を行う。
    For Each control In ActiveDocument.ContentControls

    Select Case control.title

        Case "発行日"

        control.Range.Text = Format(Date, "yyyy/mm/dd")'発行日のクイックパーツの日付を更新

        Case "タイトル"

        title = control.Range.Text

    End Select

    Next

    With Application.FileDialog(msoFileDialogSaveAs)'ダイアログの呼び出し

        .InitialFileName = Format(Date, "yyyymmdd") & "_" & title 'ファイル名の設定

        If .Show = False Then
            Exit Sub  'キャンセル
        Else
            .Execute  '保存
        End If

    End With

End Sub

応用可能性について

クイックパークを使っていない場合でも、(組織などで)テンプレートで文書を作っている場合は、その形式からファイル名、日付の位置を選択して同じような処理が出来ると考えられる。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1