■メインウィンドウの背景色をカスタマイズ (2000,2002,2003)
Accessのメインウィンドウの背景色を変える手順を解説します。
1. 既存データベースを開く
Accessを起動したら、ツールバーから開くアイコン
をクリックします。「ファイルを開く」ダイアログが表示されたら、ファイルの場所から作業フォルダ[work]をクリックしてファイルの一覧を表示します。一覧から[W006.mdb]をクリックしたら、[開く]ボタンをクリックします。
2. 新規フォーム作成
データベースウィンドウのオブジェクトから[フォーム]をクリックして、右側の新規オブジェクトのショートカットから[デザインビューでフォームを作成]をダブルクリックします。
3. コマンドボタン作成
ツールボックスのコントロールウィザードのアイコン
をクリックして、コントロールウィザードを無効にします。ツールボックスが表示されていないときは、ツールバーからツールボックスのアイコン
をクリックして表示します。ツールボックスからコマンドボタンのアイコン
をクリックして、フォームの詳細セクションにドロップします。コマンド0が作成されたら、フォームの空き領域をクリックしてフォーカスをコマンド0から移動します。コマンド0をダブルクリックしてプロパティウィンドウを表示します。プロパティウィンドウの[書式]タブをクリックしたら、標題に「メインウィンドウの背景色設定」を入力します。[その他]のタブをクリックしたら、名前に「cmdSetBGcolor」を入力します。
同様の手順で、ツールボックスからコマンドボタンのアイコン
をクリックしたらフォームの詳細セクションにドロップして、コマンド1を作成します。コマンド1のプロパティウィンドウから、[書式]タブをクリックしたら標題に「メインウィンドウの背景色復元」を入力します。[その他]のタブをクリックしたら、名前に「cmdResetBGcolor」を入力します。

図 フォームの詳細セクションに2個のコマンドボタン作成
4. コマンドボタンのOnClickイベント登録
Accessのツールバーからコードのアイコン
をクリックして、コードビューに切り替えます。コードビューのオブジェクトのドロップダウンリストから[cmdSetBGcolor]を選択します。コードビューのプロシージャのドロップダウンリストから[Click]を選択します。cmdSetBGcolorのOnClickイベントが生成されたら、次のコードを入力します。
Private Sub cmdSetBGcolor_Click()
Dim fRet As Boolean
Dim lngColor As Long
lngColor = fsDialogColor(Me.hwnd)
If lngColor = -1 Then
lngColor = RGB(255, 255, 255)
End If
fRet = fsSetMDIBackGroundColor(lngColor)
End Sub
同様の手順で、オブジェクトのドロップダウンリストから[cmdResetBGcolor]を選択して、プロシージャのドロップダウンリストから[Click]を選択します。cmdResetBGcolorのOnClickイベントが生成されたら、次のコードを追加します。
Private Sub cmdResetBGcolor_Click()
Dim fRet As Boolean
fRet = fsRestoreMDIBackGroundColor()
End Sub
Note
|
この機能を新規に作成したデータベースに組み込む この機能を新規に作成したデータベースに組み込むには、フォームを開く前にダウンロードしたサンプル006.mdbからモジュールbasChangeMDI、basColorPicker、clsCommonDialog、clsDIBSectionをインポートする必要があります。 |
5. フォームを開く
VBEのツールバーから表示(Access)のアイコン
をクリックして、Accessのウィンドウに切り替えます。フォームが表示されたら、[メインウィンドウの背景色設定]のボタンをクリックします。「色の設定」ダイアログが表示されたら、基本色からオレンジ色を選択して[OK]ボタンをクリックします。

図 「色の設定」からオレンジ色を選択して[OK]ボタンをクリック
Accessのメインウィンドウの背景色がオレンジ色に変わったら、[メインウィンドウの背景色復元]のボタンをクリックして元の背景色に戻します。

図 Accessのメインウィンドウの背景色をオレンジ色にカスタマイズした例
6. フォームを閉じて保存
Accessのツールバーから上書き保存のアイコン
をクリックしたら、「frmメインウィンドウの背景色設定」の名称で保存します。フォームを閉じるボタン
をクリックしてフォームを閉じます。
●解説
Accessのメインウィンドウの背景色を変えるには、fsSetMDIBackGroundColor()関数を使用します。
fsSetMDIBackGroundColor(lngColor As Long )
この関数の引数lngColorには、背景色のカラーコードを長整数型で指定します。
fsSetMDIBackGroundColor( RGB(255,0,0) ) ‘ 背景色を赤色に設定
fsSetMDIBackGroundColor( RGB(0,255,0) ) ‘ 背景色を緑色に設定
fsSetMDIBackGroundColor( RGB(0,0,255) ) ‘ 背景色を青色に設定
このサンプルでは、引数のカラーコードを直接指定する代わりにWindowsの「色の設定」ダイアログから選択するようにしています。「色の設定」ダイアログから[色の作成]ボタンをクリックするとお好みの色を作成して背景色として使用することができます。
Windowsの「色の設定」ダイアログを表示するには、fsDialogColor()関数を使用します。この関数の引数には、フォームのウィンドウハンドラーを指定します。戻り値として、選択したカラーコードが長整数型で返されます。「色の設定」ダイアログから[キャンセル]ボタンをクリックしたときは、-1が返されます。
lngColor = fsDialogColor(Me.hwnd)
If lngColor = -1 Then
lngColor = RGB(255, 255, 255)
End If
fRet = fsSetMDIBackGroundColor(lngColor)

図「色の設定」ダイアログから[色の作成]ボタンをクリックした例
Accessのメインウィンドウの背景色をデフォルトの背景色に戻すには、fsRestoreMDIBackColor()関数を使用します。
fsRestoreMDIBackGroundColor()
fsSetMDIBackGroundColor()とfsRestoreMDIBackGroundColor()関数は、標準モジュールbasChangeMDIに登録されていますのでソースコードを解析したい方は、そちらを参照してください。