• ベストアンサー

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

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

  • koron
  • お礼率61% (55/89)

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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

  • VB 関数

    初めまして。 VB初心者なので,簡単な質問なのかしれませんが御願いします。 C言語で,   int      main        (void) 戻り値の型    関数名      戻り値なし と書きますが,これと同じ意味を持つプログラムをVBで書くとどのようになりますか? 関数の作り方がまだわかってないので教えていただけますか? 宜しく御願いします。 

  • vb6の桁数指定

    こんばんわ。 vb6使用で、色々探してみたのですが、わかりませんでした。 12313133→そのまま 9797879797977896→9797977896 121212→そのまま 等を10桁に変換する関数です。 If IsNumeric(val) Then val = Format(val, "##########") endif これで10桁にできないのですが、正しい方法を教えてほしいです。 同様に 111.938 を 11.9(3は四捨五入) にする方法も、##.0ではないでしょうか? よろしくお願い致します。

  • データ型変換

    String型のデータをInteger型の変数に入れたいのでが・・・。 '変数の宣言 Dim DataTable(2, 5) As String Dim made As Integer 'データ型変換 made = CInt(DataTable(1, 0)) このようにしたのですが、実行すると 『実行時エラー '13'  型が一致しません』 と表示され、デバックしてみるとココ↓ made = CInt(DataTable(1, 0)) が黄色くなります。 どうしたら上手く型変換ができるのでしょうか? ちなみに、VB6.0です。

  • VB6 丸めるとは?

    VB6で、 Mod演算子のMSDNヘルプを見てみると、 「演算結果は整数に丸められる」 とあります。 例として19 Mod 6.6は5.8ですが5になってしまいます。 また、CInt関数について同じくヘルプで調べてみると、 「少数部分は丸められます」 とあり、CInt(5.8)とすると6となってしまいます。 質問なのですが、 「丸める」と一口にいっても、四捨五入したり、切り捨てたりといろいろあるのだという認識であっているでしょうか? CIntなら小数部は四捨五入され、Modならいかなる数字であろうと小数部は切り捨てられる、ということでよいでしょうか?

  • 数値型への変換関数

    ASPで5桁の数値を、CIntで変換したいんですけど、CIntは4桁までしか変換出来ないみたいなんで、他に何か最適な関数を教えて下さい!

  • オフコンのデータをVBに組み込みたいんですが。

    こんばんは。 VB(VB-Report)を実行させてそこからF*TRANを動かし、オフコンのデータをCSVファイルに変換して、それをエクセルで帳票印刷したいんですが、そのデータをどのようにVBに組み込んで帳票印刷まで持っていったらいいのか全く分かりません。 参考書などを読んだり、サイトを探したりしているのですが、なかなか見つけることができません。 何か参考になる本やサイトをご存知の方、教えていただけないでしょうか? よろしくお願い致します。

  • VB2010でのExcel操作

    VB2010を使用しています VBにてExcel上のセルの値をボタンを押すごとに『+1』していきたいのですが xlSheets.cells(2, 5) = xlSheets.cells(2, 5) + 1 では『Range型からIntegerに変換できません』的なエラーが出ます。 『CINT()』や『.ToString』などを使って変換しようとしても何かしらのエラーが出てしまいます。 ご教授お願いします。

  • VB 関数名 説明

    こんにちは、VBの勉強をはじめたものです。 「CStr関数は、引数の値を文字列に変換する関数」でCStrのCは恐らくCharactor(文字の意味)だと思います。  このように、いろいろな関数名の語源が分かれば学習しやすいのですが、そのようなサイトはないでしょうか? 例えば、WEBならトホホというサイトが、タグについて説明をしてくれています。 何かお分かりの方がいましたら教えてください。 よろしくお願いします。

  • 数字か文字列かを判定する関数

     JAVAの初心者です、宜しくお願いします。     テキストボックスに入力された値を、数字か文字列かを判定する関数ってありますか、VBでは「isNumeric」とかがあるのですが、JAVAではヒットしませんでした。  どこからどのように調べるのでしょうか。  いいサイトがあれば教えて下さい。

    • ベストアンサー
    • Java
  • VB6でデータを昇順に並べ替える

    VB6でデータを昇順に並べ替えたいのですが、 専用の関数はありますでしょうか?

専門家に質問してみよう