Microsoft Access Club >Access裏技Tips >このページ >次頁 < 前項 サイト内検索


メインフォームで独自関数を汎用的に利用する : Access裏技Tips



Accessでは独自関数を作成することができますが、関数内ではオブジェクト名を指定しなくてはいけません。 ここでは、MeキーワードやActiveFormプロパティを用いて汎用的に利用する技を紹介します。

独自関数を汎用的に記述する

  1. 非連結のメインフォームを作成します。
  2. 独自関数をMyCaptionChangeを作成し、フォームの標題に日時を書き込みます。 背景色を変更するために独自関数ActiveColorChangeを作成します。
  3. この関数は、フォームの詳細セクションをマウスでクリックすると順次背景色を変更することができます。
  4. これら関数内では、利用するフォーム名を直接記述せず、MeキーワードやActiveFormプロパティを用いて汎用的に作成しています。

Public Subプロシージャの作成

SubプロシージャMyCaptionChangeを作成します

Public Sub MyCaptionChange(MyForm As Form) ' --- A

     MyForm.Caption = "マウスクリックで背景色が変わります。" & Now ' --- B

End Sub
解説
  1. 引数MyFormをFormオブジェクトと定義します。
  2. Formオブジェクトの標題に書き込みます。
今回のおすすめポイント

Now関数

現在の年月日と時間を求めます。年月日だけならDate関数を利用します。

SubプロシージャMyCaptionChangeの作成

SubプロシージャMyCaptionChangeを作成します。

Public Sub ActiveColorChange()

    Dim CurrentForm As Form ' --- A
    Dim sinColor As Single

    Static intColor As Integer ' --- B

    Set CurrentForm = Screen.ActiveForm ' --- C

    Select Case intColor
        Case 0: sinColor = 16378570
        Case 1: sinColor = 15596254
        Case 2: sinColor = 15783916
        Case 3: sinColor = 15262687
    End Select
    
    CurrentForm.Section(0).BackColor = sinColor ' --- D
        
    intColor = intColor + 1
    
    If intColor >= 4 Then intColor = 0 ' --- E

End Sub
解説
  1. 変数CurrentFormをフォームオブジェクトとして定義します。
  2. Staticステートメントで変数intColorを定義します。
  3. 変数CurrentFormに対して、SetステートメントとScreenプロパティを用いてアクティブなオブジェクトを参照します。 この場合は、実行しているアクティブなフォームを変数CurrentFormへ代入することを意味します。
  4. Section(0)とは、フォームの詳細セクションを指します。汎用的に仕上げるため、特定の名称を用いていません。
今回のおすすめポイント

Staticステートメント

Staticステートメントで宣言した変数は、プログラムが実行されている間をとおして値を保持します。但し、他のプロシージャ内で用いることはできません。この場合は、宣言セクションに変数を宣言(Dim)します。

ActiveFormプロパティ

Screenオブジェクトと共に使用し、フォーカスを持っているフォームを識別または参照します。 よって、フォームの開く時イベントでは使用できません。完全に開ききったフォームでのみ使用可能です。

非連結のメインフォームの作成

非連結のメインフォームを作成します。

フォームの開く時イベントプロシージャの作成

フォームの開く時イベントプロシージャを作成します。

Private Sub Form_Open(Cancel As Integer)

    Call MyCaptionChange(Me) ' --- A
    
End Sub
解説
  1. FunctionプロシージャMyCaptionChangeを呼び出します。引数には、フォーム自身をあらわすMeキーワードを記述します。
今回のおすすめポイント

Staticステートメント

Meキーワードは、イベントプロシージャ内であれば特に注意することなく、オブジェクト自身を表すものとして利用できます。
標準モジュール内では利用できませんが、サンプルのように引数として活用する方法があります。

フォームの詳細のクリック時イベントプロシージャの作成

フォームの詳細のクリック時イベントプロシージャを作成します。

Private Sub 詳細_Click()

    Call ActiveColorChange ' --- A

End Sub
解説
  1. FunctionプロシージャActiveColorChangeを呼び出します。

動作確認

  1. デザインビューからフォームビューに切り替えます。
  2. フォームの標題に日付と時刻が表示されているのを確認します。

  1. 詳細セクションをクリックすると、背景色が変更になるのを確認します。


関連ページ

ページの先頭へ 前ページへ戻る

 


メインフォームで独自関数を汎用的に利用する : Access裏技Tips


 

-Microsoft Access Club-

動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。データセンター設置場所はアメリカ合衆国です。: 動画サーバードットコム
動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。
データセンター設置場所はアメリカ合衆国です。
100Mbps〜1Gbpsまで対応できます。