対象: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
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
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
[スポンサードリンク]
- Newer:シート名に連番を振るExcelマクロ
- Older:インストラクターのネタ帳の2016(平成28)年の人気ページ
Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » ActiveWorkbook.Nameから拡張子