|
大変遅くなりました m(_ _)m
皆様アドバイスありがとうございます
To よろずや さん
>変数の定義に、十進型はありません。
なるほどです
言われて理解が深まりました
>桁数の多い数値を扱うには、セルには文字列で格納します。
>VBAで数値として扱うときは、十進型にします。
>Cdec関数で十進型に変換したものをVariant型変数に入れます。
作業手順ありがとうございます
勉強になりました
To ichinose さん
>でも、10進型を使っても28、29桁辺りが限界です。
ありがとうございます
データ型変換関数
tp://msdn.microsoft.com/ja-jp/library/s2dy91zy%28VS.80%29.aspx
CDec 10 進型 (Decimal) (Visual Basic)
小数点以下が 0 桁 (小数部分を持たない数値) の場合、-79,228,162,514,264,337,593,543,950,335 〜 79,228,162,514,264,337,593,543,950,335。
ありました
x = CDec("123456789012345678901234567890")
で
実行時エラー '6':
オーバーフローしました。
で、快感でなく 実感できました (^_^;;;
mystrcomp
ありがとうございました
>>Q2
>>またb5-b11でセル表示が、右寄せ、左寄せの原因がわかりません
>これは、意味がわかりません
ですが(B12追加しました)
B6 右寄せ 3.5051E+34 '= MID(A2, FIND(" ", A2) + 1, 100) + 1
B7 左寄せ 35051000100001000100002000000000402 '= B1
B8 左寄せ 3.5051E+34 '= B1 + 1
B9 左寄せ 35051000100001000000000000000000000 '= TEXT(B1 + 1,0)
B10 右寄せ 3.5051E+34 '= B1 * 1
B11 左寄せ 35051000100001000000000000000000000 '=TEXT( B1 * 1,"#")
B12 左寄せ 追加 35051000100001000100002000000000402 '= MID(A2, FIND(" ", A2) + 1, 100)
で
B6が右寄せ、B12が左寄せ
B8が指数で左寄せ
B7が左寄せ、B10が右寄せ
となる理由がわかりません
何か有りましたらよろしくお願い致します
>すべての数値を文字列化して、比較することはStrcompを使えばできますよ!!
了解です
>大きい桁(35桁程度)の演算がしたいなら、
>足し算や引き算をVBAでシュミレートしなければなりませんねえ。
ありがとうございます
この辺もう少し勉強してみたいと思います
To Yuki さん
>電卓を使えば有効桁数32桁まで計算できるようです。
>マクロで電卓を起動して数値、演算子、数値で結果を取出す。
>位は出来そうです。
ありがとうございます
ただ、APIでウインドウを捕獲しないと駄目そうなので
ちょっと敷居が高そうです
時間をとってチャレンジしてみたいと思います
いまいち理解出来ていないのですが
>大きい桁(35桁程度)の演算がしたいなら、
>足し算や引き算をVBAでシュミレートしなければなりませんねえ。
は文字列操作ではなく値操作と思うのですが
上記の
データ型変換関数
tp://msdn.microsoft.com/ja-jp/library/s2dy91zy%28VS.80%29.aspx
の一覧表では最高桁数 CDec の 29桁 です
>電卓を使えば有効桁数32桁まで計算できるようです。
はどのようにしておこなっているのでしょうか
また、やはり数値あつかいでは35桁の取り扱いはVBAでも出来ないのでしょうか
色々いたキーワードで再度調べてみたのですが
初級シスアドのIEEE754あたりでは基本事項のような感じでした
上記の勉強などしたこともなく基本的な知識の欠如を痛感しています
この辺の理解が必要な気もしてきましたがどうなんでしょう
頓珍漢なことを考えているような気もします
アドバイス有りましたらよろしくお願い致します
|
|