Accessテクニックのホームへ戻る

■メインウィンドウの背景色をカスタマイズ  (2000,2002,2003)

 

Accessのメインウィンドウの背景色を変える手順を解説します。

 

1. 既存データベースを開く

Accessを起動したら、ツールバーから開くアイコンをクリックします。「ファイルを開く」ダイアログが表示されたら、ファイルの場所から作業フォルダ[work]をクリックしてファイルの一覧を表示します。一覧から[W006.mdb]をクリックしたら、[開く]ボタンをクリックします。

 

2. 新規フォーム作成

データベースウィンドウのオブジェクトから[フォーム]をクリックして、右側の新規オブジェクトのショートカットから[デザインビューでフォームを作成]をダブルクリックします。

 

3. コマンドボタン作成

ツールボックスのコントロールウィザードのアイコンをクリックして、コントロールウィザードを無効にします。ツールボックスが表示されていないときは、ツールバーからツールボックスのアイコンをクリックして表示します。ツールボックスからコマンドボタンのアイコンをクリックして、フォームの詳細セクションにドロップします。コマンド0が作成されたら、フォームの空き領域をクリックしてフォーカスをコマンド0から移動します。コマンド0をダブルクリックしてプロパティウィンドウを表示します。プロパティウィンドウの[書式]タブをクリックしたら、標題に「メインウィンドウの背景色設定」を入力します。[その他]のタブをクリックしたら、名前に「cmdSetBGcolor」を入力します。

 

同様の手順で、ツールボックスからコマンドボタンのアイコンをクリックしたらフォームの詳細セクションにドロップして、コマンド1を作成します。コマンド1のプロパティウィンドウから、[書式]タブをクリックしたら標題に「メインウィンドウの背景色復元」を入力します。[その他]のタブをクリックしたら、名前に「cmdResetBGcolor」を入力します。

 

フォームの詳細セクションに2個のコマンドボタン作成

 

4. コマンドボタンのOnClickイベント登録

Accessのツールバーからコードのアイコンをクリックして、コードビューに切り替えます。コードビューのオブジェクトのドロップダウンリストから[cmdSetBGcolor]を選択します。コードビューのプロシージャのドロップダウンリストから[Click]を選択します。cmdSetBGcolorOnClickイベントが生成されたら、次のコードを入力します。

 

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]を選択します。cmdResetBGcolorOnClickイベントが生成されたら、次のコードを追加します。

 

Private Sub cmdResetBGcolor_Click()

  Dim fRet As Boolean

  fRet = fsRestoreMDIBackGroundColor()

End Sub

 

Note

この機能を新規に作成したデータベースに組み込む

 

この機能を新規に作成したデータベースに組み込むには、フォームを開く前にダウンロードしたサンプル006.mdbからモジュールbasChangeMDIbasColorPickerclsCommonDialogclsDIBSectionをインポートする必要があります。

 

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に登録されていますのでソースコードを解析したい方は、そちらを参照してください。

 

ダウンロード (006.lzh)