|
おはようございます。
現象確認しました。
>いまさらながらですが、動作としてわかりましたが
>この動作のhelpみたいなものはあるのでしょうか
解説サイトの紹介は他の方に任せますが・・・、
仕様だと思っていたのでまったく疑問に思わなかったなあ・・・。
>>下記で再現できます
>C4が指数表示で右寄せ
>C7が指数表示なのに左寄せとなっています
>ただ 参照先が
>C4は、MID関数式
>C7は、等号式?
>の違いがありますが・・・・・
現象確認しました。
投稿されたコードを実行しました。
セルC7の書式が「文字列」に変わっていますね?
結果が左寄せになるのは、↑これが起因していそうですが・・。
投稿されたプロシジャーのコード順序を以下のようにすると、セルC7は、右寄せになりますね!!
Sub cell_set2()
Cells.Delete Shift:=xlUp
Range("B2").Value = "V2_I173 35051000100001000100002000000000402"
Range("C2").Formula = "= MID(B2, FIND("" "", B2)+1, 100)"
Range("C3").Formula = "=C2"
Range("C4").Formula = "=C2+1"
Range("C6").Formula = "=B6"
Range("C7").Formula = "=B6+1"
Range("B6").NumberFormatLocal = "@"
Range("B6").Value = "35051000100001000100002000000000402"
Columns("B:C").EntireColumn.AutoFit
Range("B2").Select
End Sub
>アホだからでもいいですが、何かアドバイス頂けると一歩進めるような気がします
>なにかありましたらよろしくお願いします
足し算を例にとれば、
桁の小さい数字から桁をあわせて順々に足し算していって、桁が繰り上がったら、
次の桁に1を繰り越す という処理を数字があるだけ繰り返す
という処理です。
123
89+
-----------
3+9=12 で 1の位は 2で 1が繰り上がって・・、
2+8+1(繰り上がり)=11で10の位は、1で1繰り上がって
1+1(繰り上がり)=2で 繰り上がりはなし
結果 212 という答えが得られます。
こんな過程から、ロジックとして、繰り返す処理(Do〜Loopの中で処理する内容)を
検討します。
私は、
プログラムの基本形式のひとつである
前処理
|
|
1回以上のループ
|
|
後処理
という形式にすることを考えてプログラムの作成にあたっています。
(ワーニエ法より)
>後、
>足し算の If g3 > 0 Then
>の意味が下記で確認してもなぜいるのかよくわからないのですが・・・
>アドバイス頂けるとうれしいです
>よろしくお願いいたします
これは、最後の桁の足し算で繰り上げがあったときの処理です。
Sub test2()
MsgBox stradd("99", "1")
End Sub
上記は、100 と表示されますが、
If g3 > 0 Then 〜
がないと、00と表示されてしまいます。
以上です。
|
|