- ベストアンサー
VB のデータ型関数について
vb超初心者です。 データ型について疑問があります。 データ型の関数で、 1。データ型を調べる関数 IsNumeric等 2。データ型を変換する関数 Cint等 この2つの関数の違いが分かりません。 調べると変換とは同じ意味で理解しているのですが? どのように、どんな時に使いわけたらいいでしょうか? よろしくお願い申し上げます。
- みんなの回答 (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となる
その他の回答 (2)
- sha-girl
- ベストアンサー率52% (430/816)
IsNumericはデータ型を調べる関数とは違います。 Variant型、あるいはString型の値が 数値に変換できるものはTrue、できないものに対してはfalseの値が返ってきます。 "a"という文字列は数値に変換できないのてIsNumeric("a")ではFalseになります。 "1"という文字列は1という数値に変換できるのでIsNumeric("1")はTrueとなります。 IsnumericがTrueのものはCintやClngなどで変換できるわけです。
お礼
ポイントを押さえてのご説明ありがとうございました。
- Good-S15
- ベストアンサー率33% (149/439)
こんばんわ。 以前、7年程開発やってました。 VB4でバリバリに。。。 両者は、全然違いますよ。 IsNumeric→引数のデータが数字かどうかを調べる関数。 Cint→文字列データ等を数字データに変換する関数。
お礼
ありがとうございました。
お礼
大変わかりやすく教えていただきありがとうございました。 大変勉強になりました。