0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?