• ベストアンサー

VB のデータ型関数について

vb超初心者です。 データ型について疑問があります。 データ型の関数で、 1。データ型を調べる関数   IsNumeric等 2。データ型を変換する関数   Cint等 この2つの関数の違いが分かりません。  調べると変換とは同じ意味で理解しているのですが? どのように、どんな時に使いわけたらいいでしょうか? よろしくお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

#1の回答「数値であるか」、#2の回答「数値に変換できるか」の件、下記(注)より#2の方が適当? ●Isxxxの型はIsArray,IsBindable,IsBroken,IsDataSource IsDate、IsDirty、IsEmpty、IsError,IsMissing、IsNull, IsNumeric、IsObject,とランゲージリファレンスにあり、「... であるかどうかを調べ、結果をブール型(True,False)で返します 」「値の取得のみ可能です」とあります。 例文はMyVar="53" Mycheck=IsNumeric(MyVar) Trueを返す。 MyVar="459.95" Mycheck=IsNumeric(MyVar) Trueを返す。 MyVar="45 Help" Mycheck=IsNumeric(MyVar) Falseを返す。 とある。 (注)文字列の「53」も、数値53もIsNumericでTrueとなる。 下記VBAでテスト済み。A1に’53、A2に53、A3に53abをいれ Sub test01() b = Worksheets("sheet1").Cells(3, 1) 'Cells(1,1),Cells(2,1) に変えて実行。 MsgBox b a = IsNumeric(b) If a = True Then MsgBox "True" Else MsgBox "False" End If End Sub ●cxxxの型はCBool,CByte,CCur,CDate,CDbl,CInt CLng,CsngCStr,CVar,CVErrがあり「・・・に変換する」です。  MyInt=CIんt(2345.6789)  2345となる

koron
質問者

お礼

大変わかりやすく教えていただきありがとうございました。 大変勉強になりました。

その他の回答 (2)

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.2

IsNumericはデータ型を調べる関数とは違います。 Variant型、あるいはString型の値が 数値に変換できるものはTrue、できないものに対してはfalseの値が返ってきます。 "a"という文字列は数値に変換できないのてIsNumeric("a")ではFalseになります。 "1"という文字列は1という数値に変換できるのでIsNumeric("1")はTrueとなります。 IsnumericがTrueのものはCintやClngなどで変換できるわけです。

koron
質問者

お礼

ポイントを押さえてのご説明ありがとうございました。

  • Good-S15
  • ベストアンサー率33% (149/439)
回答No.1

こんばんわ。 以前、7年程開発やってました。 VB4でバリバリに。。。 両者は、全然違いますよ。 IsNumeric→引数のデータが数字かどうかを調べる関数。 Cint→文字列データ等を数字データに変換する関数。

koron
質問者

お礼

ありがとうございました。

関連するQ&A

専門家に質問してみよう