Microsoft Access Club >Access一日一見 >このページ >次頁 <前項  サイト内検索


データ型の判別 - TypeName関数 : 一日一見



プロシージャの中で用いた変数、定数等のデータ型を求めるTypeName関数を用いた独自関数をご紹介します。 引数にデータ型を求めたい変数等を指定するだけで簡単に利用できます。

TypeName関数

変数に関する情報を提供する文字列型 (String) の文字列を返すAccessの組み込み関数です。

TypeName関数を用いた独自関数

何れでも利用できるように標準プロシージャで作成します。

Function MyTypeCheck(Mydata As Variant)

    '値、変数のデータ型を表示します。
    Dim Mydatashow As String
        
    Select Case TypeName(Mydata) ' --- A
        Case "Byte": Mydatashow = "バイト型 (Byte)"
        Case "Integer": Mydatashow = "整数型 (Integer)"
        Case "Long": Mydatashow = "長整数型 (Long)"
        Case "Single": Mydatashow = "単精度浮動小数点数型 (Single)"
        Case "Double": Mydatashow = "倍精度浮動小数点数型 (Double)"
        Case "Currency": Mydatashow = "通貨型 (Currency)"
        Case "Decimal": Mydatashow = "10 進数型"
        Case "Date": Mydatashow = "日付型 (Date)"
        Case "String": Mydatashow = "文字列型 (String)"
        Case "Boolean": Mydatashow = "ブール型 (Boolean)"
        Case "Error": Mydatashow = "エラー値"
        Case "Empty": Mydatashow = "未初期化"
        Case "Null": Mydatashow = "無効な値"
        Case "Object": Mydatashow = "オブジェクト"
        Case "Unknown": Mydatashow = "オブジェクトの種類が不明なオブジェクト"
        Case "Nothing": Mydatashow = "オブジェクトを参照していないオブジェクト変数"
    End Select

    MyTypeCheck = Mydatashow

End Function
解説
  1. Select case ステートメントを用いて、TypeName関数が返す値を分かりやすい言葉に置き換えます。

利用方法

他のプロシージャ内から呼び出します。

Function MyTestPro()

    Dim vardata As Variant
    vardata = #12/10/2005#
    
    MsgBox MyTypeCheck(vardata)

End Function
解説
  1. 変数に#で囲んだ12/10/2005を代入します。
  2. プロシージャを実行すると、以下のメッセージが表示されます。

  1. 日付型であることが分かります。
その2
Function MyTestPro()

    Dim vardata As Variant
    vardata = "12/10/2005"
    
    MsgBox MyTypeCheck(vardata)

End Function
解説
  1. 変数に"(ダブルクォート)で囲んだ12/10/2005を代入します。
  2. プロシージャを実行すると、以下のメッセージが表示されます。

  1. 文字列型であることが分かります。

2005/07/04

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

 


データ型の判別 - TypeName関数 : 一日一見


-Microsoft Access Club-

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