Excel VBA質問箱 IV

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

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


18318 / 76732 ←次へ | 前へ→

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

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

>ですが(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が左寄せ
B6は、最後に +1 で算術演算とみなされます。よって、数値が返り、右寄せ
B12は、文字列の編集なので左寄せ

>B8が指数で左寄せ
これは、??? B1は、文字列ですよね?
(再現できないので、さらに再現手順を詳細に記述してください)

>B7が左寄せ、B10が右寄せ
B7は、文字列編集だから左寄せ
B10は、算術演算だから、右寄せ


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

>は文字列操作ではなく値操作と思うのですが
これは、昔やった縦書きの足し算(加法の場合)をVBAでコード化するのですよ

123
29 +
--------


3+9で 2で1繰り上がって・・・・  ってやつ
結果はあくまで文字列でだすのですよ!!そうしないと表現できないので・・・。

標準モジュールに


Option Explicit
'================================================================
Sub test()
  Dim s1 As String
  Dim s2 As String
  s1 = "123"
  s2 = "29"
  [a1].Value = "'" & stradd(s1, s2)
  s1 = "3505100010000100010000200000402111111111"
  s2 = "35"
  [a2].Value = "'" & stradd(s1, s2)
End Sub
'=================================================================
Function stradd(ByVal str1 As String, str2 As String) As String
  Dim l1 As Long
  Dim l2 As Long
  Dim g0 As Long
  Dim g1 As Long
  Dim g2 As Long
  Dim g3 As Long
  l1 = Len(str1)
  l2 = Len(str2)
  g3 = 0
  Do While l1 > 0 Or l2 > 0
    If l1 > 0 Then g1 = Val(Mid(str1, l1, 1)) Else g1 = 0
    If l2 > 0 Then g2 = Val(Mid(str2, l2, 1)) Else g2 = 0
    g0 = g1 + g2 + g3
    g3 = g0 \ 10
    stradd = CStr((g0 Mod 10)) & stradd
    l1 = l1 - 1
    l2 = l2 - 1
  Loop
  If g3 > 0 Then stradd = CStr(g3) & stradd
End Function


これは、足し算ですが、引き算も掛け算も考え方は同じです。

そういや、何年か前の今頃だったなあ、
平方根を100桁(もっとだったかなあ)ぐらい計算したい
なんていうご質問があったなあ・・・。
その時も平方根の計算をシュミレートすれば という投稿を
したと思いました。

0 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 お礼

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