見出し画像

WordVBAでドキュメント名を取得する

ExcelVBAでは、色々なコードが公開されていますが、WordVBAでは参考になるもサイトが少ないので、自身の勉強も兼ねて、いくつかのコードを公開していきたいと思います。

これから紹介するのは、WordVBAでドキュメント(文書)のファイル名を取得するコードです。

Sub sb文書名取得テスト()
    Debug.Print zfDocumentName(ActiveDocument, a_拡張子:=True)      'Macroテスト.docm
    Debug.Print zfDocumentName(ActiveDocument, a_拡張子:=False)     'Macroテスト
End Sub

Public Function zfDocumentName(a_doc As Document, Optional a_拡張子 As Boolean = True) As String
'ドキュメント名を取得するユーザー定義関数
'※引数にTRUEを指定するか何も指定しないと拡張子付きで、引数にFALSEを指定すると拡張子なしでファイル名を返すユーザー定義関数

  Dim doc_name As String
  doc_name = a_doc.Name

  If a_拡張子 = True Then
    zfDocumentName = doc_name
  Else
    zfDocumentName = Left(doc_name, InStrRev(doc_name, ".") - 1)
  End If
 
End Function

基本的には拡張子ありの場合には、「ActiveDocument.Name」で取得すればよいので、上記コードを使用する必要はありません。
しかし、拡張子なしのファイル名を取得したい場合には、上記コードを利用すれば、簡単に取得可能です。

もしよろしければサポートをお願いします。今後の執筆のかてにします。