Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » ブック名をワークシートに入力するマクロ

ブック名をワークシートに入力するマクロ

対象:Excel2003, Excel2007, Excel2010, Excel2013

「vba ブック名 ワークシートに表示」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

ブック名をワークシート上に表示するVBA(Visual Basic for Applications)のコードを探している方による検索です。

[スポンサードリンク]

拡張子のついた状態で良ければ、とても簡単なマクロで、ブック名をワークシート上のセルに入力することが可能です。

▼アクティブセルにブック名を入力するマクロ
Sub アクティブセルにブック名を入力する()

 If ActiveSheet.Type = xlWorksheet Then
  ActiveCell.Value = ActiveWorkbook.Name
 End If

End Sub

アクティブなセルに、ActiveWorkbook.Nameを代入するだけのシンプルなマクロですが、グラフシートがアクティブなときに
 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

End Sub

拡張子つきに名前を変数に格納して
 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)
アクティブセルの値に代入しています。

関連語句
VBA, Visual Basic for Applications

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » ブック名をワークシートに入力するマクロ

「Workbooks・Workbook」の記事一覧

検索


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

.