Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » 未保存のブックをアクティブにするExcelマクロ

未保存のブックをアクティブにするExcelマクロ

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

「マクロ 名前の無いエクセルをアクティブ」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

Excel VBA(Visual Basic for Applications)で、まだ保存されていないブックをアクティブにするにはどのようなコードを書けばいいのか探している方による検索でしょうか。

[スポンサードリンク]

保存されていないブックをアクティブにするサンプルマクロ

以下のようなマクロを作ってみました。

Sub 未保存のブックをアクティブに()

 Dim bk As Workbook

 For Each bk In Workbooks
  If InStr(bk.Name, ".") = 0 Then
   bk.Activate
   Exit For
  End If
 Next bk

End Sub

複数のブックが開かれている状態で上記のマクロを実行すると、名前のついていない、まだ保存されていないブックがアクティブになります。

サンプルマクロの解説

開いている全ブックに対してFor Each~Nextループを回して、
 For Each bk In Workbooks

ブック名に「.」が含まれているかどうかをInStr関数で調べて、含まれていなかったときに、そのブックをアクティブにしています。
  If InStr(bk.Name, ".") = 0 Then
   bk.Activate

WorkbookオブジェクトのNameプロパティは、ブックの名前を返します。

このとき、保存されていない、名前のつけられていないブックは、「Book1」のように拡張子のついていない仮のブック名が返され、名前のつけられているブックは「Book1.xlsx」のように拡張子のついた名前が返されます。

この拡張子がついているかどうかを、「.」がブック名に含まれているかどうかで調べています。このために、指定した文字列を探して見つかった位置を返す、InStr関数を使っています。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » 未保存のブックをアクティブにするExcelマクロ

「Workbooks・Workbook」の記事一覧

検索


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

.