「vba ブック名 ワークシートに表示」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
ブック名をワークシート上に表示するVBA(Visual Basic for Applications)のコードを探している方による検索です。
拡張子のついた状態で良ければ、とても簡単なマクロで、ブック名をワークシート上のセルに入力することが可能です。
Sub アクティブセルにブック名を入力する()
If ActiveSheet.Type = xlWorksheet Then
ActiveCell.Value = ActiveWorkbook.Name
End If
End Sub
ActiveCell.Value = Activeworkbook.Name
とするとエラーとなってしまうので、アクティブなシートがワークシートのときだけ実行されるように
If ActiveSheet.Type = xlWorksheet Then
とIf文をかませています。
拡張子のないブック名を入力したい場合は、以下のようなマクロでしょうか。
Sub アクティブセルに拡張子抜きのブック名を入力する()
Dim bk_name As String
bk_name = Activeworkbook.Name
If ActiveSheet.Type = xlWorksheet Then
ActiveCell.Value = _
"'" & Left(bk_name, InStrRev(bk_name, ".") - 1)
End If
拡張子つきに名前を変数に格納して
bk_name = Activeworkbook.Name
拡張子を取り除くために、InStrRev関数とLeft関数を入れています。
Left(bk_name, InStrRev(bk_name, ".") - 1)
ここで、もしファイル名が「0001.xlsx」のようなときに、拡張子を取り除いた「0001」をアクティブセルに入力すると「1」となってしまうので、これを避けるために
"'" & Left(bk_name, InStrRev(bk_name, ".") - 1)
と「'」(シングルクォート)を先頭に付与して
ActiveCell.Value = _
"'" & Left(bk_name, InStrRev(bk_name, ".") - 1)
アクティブセルの値に代入しています。
Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » ブック名をワークシートに入力するマクロ