Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » ActiveWorkbook.Nameから拡張子

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

このサイト・インストラクターのネタ帳のアクセスログを眺めていて、
「vba activeworkbook.name 拡張子」
という検索キーワードでのアクセスがあることに気づきました。

Excel VBA(Visual Basic for Applications)で、「ActiveWorkbook.Name」というオブジェクト式から、アクティブなブックの拡張子を取得するには、どのようなコードを書けばいいのかを探していらした方による、検索キーワードでしょうか。

[スポンサードリンク]

ActiveWorkbook.Nameから拡張子を取得するサンプルマクロ

以下のSubプロシージャを実行すると、アクティブなブックの拡張子がメッセージボックスに表示されます。

Sub アクティブブックの拡張子()
 Dim bk_nm As String  ' アクティブブックの名前
 Dim pos As Long ' 「.」の位置

 bk_nm = ActiveWorkbook.Name
 pos = InStrRev(bk_nm, ".")
 If pos > 0 Then
  MsgBox Mid(bk_nm, pos + 1)
 End If
End Sub

サンプルマクロの解説

アクティブなブック名を変数に格納しておいて、
  bk_nm = ActiveWorkbook.Name

「.」を、InStrRev関数を使って、アクティブブック名の後ろから探して、
  pos = InStrRev(bk_nm, ".")

「.」より後ろの文字列をMid関数で取得して、メッセージボックスに表示しています。
   MsgBox Mid(bk_nm, pos + 1)

オブジェクト変数を使ってActiveWorkbook.Nameから拡張子を取得するサンプルマクロ

オブジェクト変数を使うのなら以下のようなSubプロシージャです。

Sub アクティブブックの拡張子_オブジェクト変数()
 Dim bk As Workbook
 Dim pos As Long  '「.」の位置

 Set bk = ActiveWorkbook
 pos = InStrRev(bk.Name, ".")
 If pos > 0 Then
  MsgBox Mid(bk.Name, pos + 1)
 End If
End Sub

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » ActiveWorkbook.Nameから拡張子

「Workbooks・Workbook」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.