• ベストアンサー

VBAでの0のデータ型は

VBAの初心者です。ExcelのVBAで小数点2桁の変数Xのデータ型を宣言したいのですが、このXは”0”の時もあります。 このような時はこの変数の型はどのように宣言したら良いのでしょうか、定義では、”Single”には正の範囲と負の範囲があって”0”がないようなのですが?

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.3

Singleで問題ないと思います。 (通貨型の方がいい場合もありますが;詳細はヘルプを参照下さい) 確かに、ヘルプで単精度浮動小数点型(Single)を見ると「負の数は~、正の数は~」と表記されて いますが、実際に代入してみるとわかるように「0」も設定可能です。 にもかかわらず、長整数型のように「-○○~+○○」といった表記をしないのは、それと同じように しまうと、実際に使用可能な桁数より小さいものまで含むことになってしまうからです。 ・・・まあ、「負の数は~、正の数は~」に続けて、「及び0が設定可能」とするのが、確かに 一番親切な表記だとは思いますけれど。

ganchan59
質問者

お礼

親切な回答ありがとうございます。 丁寧に説明していただいて分かりやすいです。 私もおかしいとは思いましたが、定義を正直に読むと迷ってしまい、質問しました。 これで安心しました。

その他の回答 (2)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

COBOLなら PIC 9(5)V9(2) のような定義がありますがVB、VBAでは変数自体にこのような定義をする方法は「ない」というのが回答になると思います。 定義するならSingleで定義しておいて、表示の際にROUNDDOWN関数で切り捨てたり、表示するセルの書式を  Range(XX).NumberFormat = "#,##0.00" などのように設定するのが一般的でしょう。

ganchan59
質問者

お礼

回答ありがとうございます。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

小数点2桁なら、たとえ0の場合があろうがSingleでいいはずです。 わたしも初心者ですが、小数点を含む数値は通常Single、桁が大きい場合はDoubleと教わりました。

ganchan59
質問者

お礼

早速の回答ありがとうございます。

関連するQ&A

  • エクセルVBA データ型 SingleとDouble

    SingleとDoubleともに、整数部分の範囲についてはどのように 考えればよいのでしょうか?例えば、小数点以下4桁までを正確 に計算できれば良く、変数の値が 54321.**** となる場合は Singleで良いのでしょうか? SingleとDoubleで対応できる、整数部分の範囲を教えてください。 お手数ですが、よろしくお願いします。

  • [MATLAB] データ型を指定した変数宣言

    MATLAB2012b / simlinkを使用しているのですが、 コマンドウィンドウやMファイルで変数を宣言する際、 x = 1 と記述すると自動でdouble型として定義されてしまうかと思うのですが、 これをsingle型やuint8型など、型を指定して宣言することはできないでしょうか。

  • VBAデータ型一覧表の「記憶領域のサイズ」とは

    エクセルVBAの変数宣言時に使うデータ型一覧内に「記憶領域のサイズ」というのがありますがどういう意味でしょうか。 例   種類    表記  記憶領域のサイズ  データ範囲    バイト型  Byte  1バイト      0~255 宣言と同時に、変数(箱)を確保する最大必要メモリーを意味するということなら、変数にデータ範囲の限度255を入れたとすると3文字なので1バイトでは足りないのでは? 初心者ですよろしくお願いします。

  • エクセルvbaの変数について

    エクセルVBAについて、同じ型の値が複数列あった際に、変数に取り入れる方法として、それぞれ一つずつ別々に変数に入れる場合と、ユーザー定義型変数を定義して入れる場合の二つがあると思いま すが、どちらの方がメモリを使わなくて済むのでしょうか。また、他にも長短があればご教示下さい。

  • VBAの一括型宣言について

    VBAにて 変数の先頭がA~Gまでの文字で始まるものはすべてsingle宣言をしたいのですが 昔使っていた記憶があるのですが忘れてしいました 現在も使用可能であれば宣言方法お教えください。 ex dim A1 as single dim B2 as single dim Ga as single これを ○○○ A~G as single のように宣言したい、 環境 offixe 2010 os windows 7

  • EXCELのVBAについて

    エクセルでVBAを使う場合に、変数や関数名に日本語を使うことが出来るみたいであまり知らなかったのですが、これは正式に使ってよい物なのでしょうか。わかる範囲で本などを調べてもこのことに触れてない(気が付かないだけかな?)ものですから、もし定義なりルールなりがあるようでしたら教えてください。

  • エクセル VBA の用語一覧について

    エクセルのVBAの勉強を始めました。 サンプルプログラムを見ているときに、わからない用語がたくさん出てきます。 手持ちのVBAの本のアルファベット順の索引にも載っていないものは、VBAのヘルプを見るのですが、私には専門的すぎて理解できず困っています。 例えば、「Long」をVBAのヘルプで調べると 「長整数型 (Long) の変数は、32 ビット (4 バイト) の変数です。 -2,147,483,648 ~ 2,147,483,647 の範囲の値をとります。 長整数型の型宣言文字はアンパサンド (&) です。」 私には投げ出したくなる内容ですが、急いでマスターしなければならないので、頑張らねばなりません。 初心者にもわかりやすい参考書や、サイトをご存知ないでしょうか。 「Google」や「答えてネット」や「OKWAVE」で、過去の質問を検索したのですが、それらしきサイトは、見つけることができませんでした。 アルファベット・五十音順で、すべての用語が網羅されているもの(本もしくはサイト)を探しています。 よろしくお願いします。 <環境> WindowsXP Professional Excel 2003 Microsoft Visual Basic 6.0 Excelについては、簡単な表やグラフを作成できるくらいのスキルです。 VBAについては、ここ数日勉強しており、マクロやプログラムの大まかな流れが理解でき始めたところです。

  • Excel VBAでグローバルな変数はどこで宣言すべきか?

    Excel VBAについての質問です(もしかするとExcelに限った話ではないかもしれません)。 宣言セクションで変数の宣言を行うとき、Publicステートメントをつけた場合の適用範囲(グローバルな範囲)がわかりません。 これは、Sheet、ThisWorkbook、標準モジュールなど、それぞれの宣言セクションの場合で違うのでしょうか? また、宣言が有効になるタイミングも違うのでしょうか? ネットで調べたり、本で調べたのですが、私の理解が不足しているのか、矛盾して書かれているように思います。 一方では全てでグローバルにあるように書かれているように思え、一方ではグローバルになる範囲が違うとかかれているように思うのです。 試してみてもいいのですが、確証がもてないままこれから使い続けるのは気持ち悪いので・・・。 ご回答いただけると幸いです。よろしくお願いします。

  • VBA

    初歩的な質問させて頂きます。 エクセル2003VBAですが、 Dim a ~ と始まる変数宣言と、 Set オブジェクト(?)の違いは何でしょうか? よろしくお願いします。

  • VBA電卓について

    こんにちは、VBA初心者です。 計算機(電卓)をつくっているのですが、 小数点を入力させる仕組みにしたいのですが、 どうのようにしたら良いのでしょうか? 変数はLONGにしているので、小数点(.)はSTRINGに なってしましいうまくいきません。 お手数ですがよろしくお願いします。

専門家に質問してみよう