Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


18377 / 76732 ←次へ | 前へ→

【63797】Re:桁数が多いと勝手に指数で計算してうまく判定できない
発言  ichinose  - 09/12/15(火) 21:58 -

引用なし
パスワード
   こんばんは。


>
>Q1
>VBAでは通貨型ですれば扱えるような記載はwebではあったのですが
>下記マクロでは15桁制限があるようです
Currencyだって、15桁程度ですよ!!

よろずやさんの記述のように10進型を使えば、桁数の多い数値を扱えます。

Sub sample1()
  Dim x As Variant
  x = CDec("1234567890123456789012345678")
  MsgBox x
  MsgBox x + 1
End Sub

でも、10進型を使っても28、29桁辺りが限界です。

35051000100001000100004000200000602

これを扱うのは、文字列として扱うしかないと思いますよ!!

大きい桁らの二つの数字の大小さえわかれば良いのなら、前投稿のように
文字列の数字をStrcomp関数を使って比較します。

'=======================================================
Sub test()
  MsgBox mystrcomp("3", "11")
  MsgBox mystrcomp("12333333333333333333333333333333333333333333333333333", "12333333333333333333333333333333333333333333333333333")
  MsgBox mystrcomp("35051000100001000100004000200000602", "35051000100001000100004000200000601")
End Sub
'======================================================================
Function mystrcomp(ByVal strnum1 As String, strnum2 As String) As Long
'  mystrcomp   1  strnum1>strnum2
'          0  strnum1=strnum2
'         -1  strnum1<strnum2
  
  Dim x As String
  Dim y As String
  x = Space(Application.Max(Len(strnum1), Len(strnum2)))
  y = x
  RSet x = strnum1
  RSet y = strnum2
  mystrcomp = StrComp(x, y)
End Function


>
>Q2
>またb5-b11でセル表示が、右寄せ、左寄せの原因がわかりません

これは、意味がわかりません


>Q3
>結構わずらわしそうな気がしますが
>15桁以上数値扱いしたい場合は、15桁以下で分割処理で結合みたいな方法しかないのでしょうか

すべての数値を文字列化して、比較することはStrcompを使えばできますよ!!


大きい桁(35桁程度)の演算がしたいなら、
足し算や引き算をVBAでシュミレートしなければなりませんねえ。

1 hits

【63725】桁数が多いと勝手に指数で計算してうまく判定できない pon 09/12/3(木) 16:00 質問
【63726】Re:桁数が多いと勝手に指数で計算してうま... ichinose 09/12/3(木) 17:40 発言
【63787】Re:桁数が多いと勝手に指数で計算してうま... pon 09/12/15(火) 12:33 お礼
【63788】Re:桁数が多いと勝手に指数で計算してうま... pon 09/12/15(火) 12:49 質問
【63789】Re:桁数が多いと勝手に指数で計算してうま... Jaka 09/12/15(火) 13:42 発言
【63792】Re:桁数が多いと勝手に指数で計算してうま... pon 09/12/15(火) 16:52 質問
【63794】Re:桁数が多いと勝手に指数で計算してうま... よろずや 09/12/15(火) 19:34 回答
【63853】Re:桁数が多いと勝手に指数で計算してうま... pon 09/12/22(火) 15:26 質問
【63854】Re:桁数が多いと勝手に指数で計算してうま... Yuki 09/12/22(火) 15:50 発言
【63855】Re:桁数が多いと勝手に指数で計算してうま... pon 09/12/22(火) 16:58 質問
【63856】Re:桁数が多いと勝手に指数で計算してうま... pon 09/12/22(火) 19:07 お礼
【63857】Re:桁数が多いと勝手に指数で計算してうま... ichinose 09/12/22(火) 22:09 発言
【63867】Re:桁数が多いと勝手に指数で計算してうま... よろずや 09/12/23(水) 23:45 発言
【63870】Re:桁数が多いと勝手に指数で計算してうま... pon 09/12/24(木) 18:36 お礼
【63868】Re:桁数が多いと勝手に指数で計算してうま... ichinose 09/12/24(木) 7:35 発言
【63871】Re:桁数が多いと勝手に指数で計算してうま... pon 09/12/24(木) 18:40 質問
【63874】Re:桁数が多いと勝手に指数で計算してうま... ichinose 09/12/25(金) 7:25 発言
【63880】Re:桁数が多いと勝手に指数で計算してうま... pon 09/12/25(金) 15:00 お礼
【63797】Re:桁数が多いと勝手に指数で計算してうま... ichinose 09/12/15(火) 21:58 発言
【63802】Re:桁数が多いと勝手に指数で計算してうま... Yuki 09/12/16(水) 13:33 発言
【63881】Re:桁数が多いと勝手に指数で計算してうま... pon 09/12/25(金) 15:01 お礼

18377 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free