#437 | 起動時の設定をVBAから行うには? | データベース、VBA | |
Accessのデータベースに対して起動時の設定を行うには、[ツール]-[起動時の設定]メニューによって表示されるダイアログでその入力を行います。 しかし、アプリケーションのタイトルなどがあらかじめ標準モジュールに定数として宣言されているような場合、わざわざマニュアルで同じものを設定するのではなく、VBAからその定数値を参照して起動時の設定に反映させたい場合もあります。 そのような場合、つぎのようなコードを実行することによって、起動時の設定をVBAから行うことができます。 Public Sub SetStartUp() Dim dbs As Database Dim prp As Property Dim strPrpName As String Dim varPrpValue As Variant On Error GoTo Err_Handler Set dbs = CurrentDb With dbs 'タイトル strPrpName = "AppTitle" varPrpValue = "マイ アプリケーション" .Properties(strPrpName) = varPrpValue 'アイコン strPrpName = "AppIcon" varPrpValue = "C:\MYAPP.ICO" .Properties(strPrpName) = varPrpValue 'スタートアップフォーム strPrpName = "StartUpForm" varPrpValue = "受注コード一覧" .Properties(strPrpName) = varPrpValue End With Exit Sub Err_Handler: If Err.Number = 3270 Then 'プロパティが見つからないときはそのプロパティを作成する '(これは起動時の設定がまだされていないときに発生します) Set prp = dbs.CreateProperty(strPrpName, dbText, varPrpValue) dbs.Properties.Append prp Resume Next End If Exit Sub End Sub 実行後の”起動時の設定” このサンプルコードでは、起動時の設定のうち、「アプリケーションタイトル」、「アプリケーションアイコン」、「フォーム/ページの表示(スタートアップフォーム)」の3つの設定を行っています。 たとえば「アプリケーションタイトル」を設定したい場合、「dbs.AppTitle」のような記法でプロパティを参照することができませんので、「dbs.Properties("AppTitle")」のような書き方で設定対象のプロパティを記述します。「アプリケーションタイトルならAppTitle」というように、あらかじめデータベースオブジェクトのプロパティとして決められているものです。 一方、起動時の設定の場合、すでに何らかの値がマニュアルで登録されていないと、「dbs.Properties("AppTitle")」などのコードを実行したときにエラーが発生します。起動時の設定が未設定の状態では、”プロパティ値が空の状態”というのではなく、”AppTitle”というプロパティ自体がまだオブジェクトに存在していないためです。そのため、上記のコードではエラートラップを行い、そこでエラーが発生したらCreatePropertyメソッドとAppendメソッドを使い、プロパティ自体の生成と追加を行うようにしています。 なお、VBAから起動時の設定を行っても、実際には次回起動時から有効となることに注意してください。 ※関連Tips「#138 AccessのタイトルバーをVBAから変更する方法」 |
|||
|
Copyright © T'sWare All rights reserved |