PR

【VBA】ウィンドウタイトルの取得と設定を行う

これで楽に!?VBA活用
記事内に広告が含まれています。

こんにちは、Ryoです。
Captionプロパティを利用するとアプリケーションのドキュメントウィンドウタイトルバーに表示されている名前を取得・設定することができますので、今回はその内容について書いていこうと思います。

スポンサーリンク

1.サンプル概要

サンプルとして新規ブック「Book1.xlsm」を作成し、そのブック上で先ず初期値のアプリケーションキャプションとアクティブウィンドウキャプションを取得してみます。

タイトルバーには「Book1.xlsm – Excel」と表示されています。

この状態でCaptionプロパティを利用してアプリケーションキャプションを取得すると「Book1.xlsm – Excel」アクティブウィンドウのキャプションを取得すると「Book1.xlsm」となりますので、そのデータをメッセージボックスで表示しています。

次にアプリケーションキャプションを「Captionプロパティ」、アクティブウィンドウのキャプションを「サンプルブック」と設定し実行します。

実行結果を同様にメッセージボックスで表示し、アプリケーションタイトルバーを確認すると画像の通り変更されていることがわかります。

キャプションとしての設定なので変更された状態で保存⇒終了してもファイル名自体が変わることはありませんが、再度開くことで初期化はされずアプリケーションキャプション名が変わったままの状態となるので、サンプルコードではそれぞれのキャプションを初期化して表示を元通りにして終了させています。

以上がサンプル概要になります。

2.サンプルコード

Sub sample1()

 Dim i As Integer
 Dim a, b As String
 
 For i = 1 To 2
 
    'アプリケーションのキャプションを取得
    a = Application.Caption
    'アクティブウィンドウのキャプションを取得
    b = ActiveWindow.Caption
 
    '1回目:初期値のキャプションをそれぞれ取得して表示
    '2回目:変更したキャプションを表示
    MsgBox "アプリケーションキャプション⇒ " & a & vbLf _
    & "アクティブウィンドウキャプション⇒ " & b
 
    If i = 2 Then Exit For
 
    '***キャプションを設定***
    Application.Caption = "Captionプロパティ"
    ActiveWindow.Caption = "サンプルブック"

 Next
 
 'アプリケーション/ウィンドウキャプションを初期化
 Application.Caption = ""
 ActiveWindow.Caption = ActiveWorkbook.Name
 
End Sub

サンプル動作として初期値表示⇒変更したキャプションを表示の流れで同様の処理を2回繰り返すのでFor~Nextで処理しています。

このようにドキュメントのタイトルバーに表示される名前を取得・設定するにはCaptionプロパティを利用します。

構文:オブジェクト.Caption

オブジェクトにApplicationオブジェクト指定で「アプリケーション名」、Windowsオブジェクト指定で「アクティブブック名」が対象となります。

サンプルコードでは a = Application.Captionでアプリケーション名、b = ActiveWindow.Captionでアクティブウィンドウ名を取得しています。

取得した値をメッセージボックスで表示した後でApplication.Caption = “Captionプロパティ”、ActiveWindow.Caption = “サンプルブック”として設定し、合わせてメッセージボックスで表示させています。

ちなみにタイトルバーで表示される拡張子はWindows(OS)設定によりますが、新規作成して保存されていなブックで実行すると拡張子のない名前となります。

3.まとめ

今回扱ったCaptionプロパティを利用するとタイトルバーの名前やアクティブウィンドウ名などを簡単に取得することができます。



実際の処理では用途が限られるプロパティですが、知っておくと有効利用できる機会も少なからずありますので頭の片隅にでも置いておくと良いと思います。

以上、ウィンドウタイトルの取得と設定を行う方法についてでした!今回の記事が何かの参考になれば幸いです。

Ryo

タイトルとURLをコピーしました