Microsoft365のAccessを使用中にアプリケーションタイトルを設定することがありましたが、設定できない状況でしたので改善方法について書きたいと思います。
※この不具合は2022/10/05確認時は解消されていました。
アプリケーションタイトルとは
作成中のAccessファイルのタイトルです。通常、ファイル名やファイルパスがタイトルバーに表示されますが、アプリケーションタイトルを設定することでファイル名・ファイルパスの替りに設定したアプリケーション名がタイトルバーに表示されます。

不具合の内容について
「ファイル」→「オプション」で「Accessのオプション」画面が開きます。「現在のデータベース」から「アプリケーションタイトル」を設定しますが、キーボードを入力しても入力を受け付けません。

次にVBAで CurrentDb.Propertiesに”AppTitle”が存在するか確認します。下記ロジックでAppTitleが存在しないことが確認できました。
Sub ListPropAppTitle()
Dim strItem As String
Dim I As Integer
'データベースのプロパティに AppTitle は存在するか
For I = 0 To CurrentDb.Properties.Count - 1 Step 1
strItem = CurrentDb.Properties(I).Name
Debug.Print strItem
Next I
End Sub
CurrentDb.Properties”AppTitle”をVBAから設定
CurrentDb.Propertiesに”AppTitle”を設定します。この処理で「アプリケーションタイトル」が設定され、タイトルバーが設定されます。
Public Function MakeAppTitle()
'アプリケーションタイトルを設定し、タイトルバーを再表示します。
Dim blnRtn As Boolean
Const DB_Text As Long = 10
blnRtn = AddAppProperty("AppTitle", DB_Text, "アプリケーションタイトル")
Application.RefreshTitleBar
End Function
Function AddAppProperty(strName As String, varType As Variant, varValue As Variant) As Boolean
'データベースのプロパティを設定します。
Dim dbs As Object, prp As Variant
Const conPropNotFoundError = 3270
Set dbs = CurrentDb
On Error GoTo AddProp_Err
dbs.Properties(strName) = varValue
AddAppProperty = True
AddProp_Bye:
Exit Function
AddProp_Err:
If Err = conPropNotFoundError Then
Set prp = dbs.CreateProperty(strName, varType, varValue)
dbs.Properties.Append prp
Resume
Else
AddAppProperty = False
Resume AddProp_Bye
End If
End Function
今後のために起動時にAutoExceマクロを設定しよう
まだ問題があります。アプリケーションタイトルを削除するとCurrentDb.Propertiesmの”AppTitle”がまた削除されアプリケーションタイトルが設定できなくなるため、起動時にアプリケーションタイトルを設定します。AutoExecマクロを作成し、プロシージャの実行で「MakeAppTitle()」を入力することで実行できます。
※「MakeAppTitle()」は「CurrentDb.Properties”AppTitle”をVBAから設定」の章のプロシージャです。必ずsubではなくFunctionにします。



コメント