<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000--VBAの小屋>数字を漢字にする関数
   1  2  3  4  5  6  7  8



さあ、じゃ、もうちょっとがんばってみるといたしましょう。

なんかしら規則性がないと、ループって難しいんですよね。
 1桁目  十とかはいらない。
 2桁目  十
 3桁目  百
 4桁目  千
 5桁目  万
 6桁目  十万
 7桁目  百万
 8桁目  千万
 9桁目  億
10桁目 十億
11桁目 百億
12桁目 千億
13桁目 一兆
14桁目 十兆
15桁目 百兆
16桁目 千兆

6桁目から、曲者ですねぇ。。。どうします?
うーん・・・。
どれ、めいっぱい大きな数字を入力して試してみようかな。

うん?
なんだ?なんでいきなり型が一致しませんなんてエラーがでるんだ??
デバッグっていうボタンをクリックすると、エラーの出ている個所が反転します。

エラーでとまっているのは、この部分のようです。

こんな長い数字を入れたからかな???

こういうときは慌てず、「その時点でどんな値になっているのか」をいろいろ調べてみましょう。

前回、俳句をひねるときに、「ウォッチウィンドウ」っていうやつ、使いましたよね。アレ使って、変数の中に何が入っているか調べてみましょう。
とりあえず、ツールバーのリセットボタンをクリックして処理を中止させます。


上の方からやってみようかな・・・。一番最初の、S1の桁数をL1に代入するところで、S1に何が入ってきているか確認してみましょう。

で、メニューバーの[表示]→[ウォッチウィンドウ]を選びましょう。ウォッチウィンドウというのがどっかに出てくると思います。
再び左端の、茶色い○印のところへもどって、この○印のあたりを右クリックします。「ウォッチ式の追加」というメニューを選びましょう。

S1を指定しましょう。これの中に何が入っているか、見せてもらいます。
ウォッチウィンドウに式が出てきましたね。

んでは、イミディエイトウィンドウの方で、再び実験。引数にながーい数字を入れて、Enter・・・。

。。。なんだこれ?
あれま。指数になっちゃってますよ。コレ。"1.23456789101235E+22"っていう文字列になってます。つまり、.(小数点)とか+とかが含まれてて、変よ、っていうことで、処理がとまっちゃってるみたいですね。
ふええ。S1の型はStringにしてるのに、数字だけ入力すると、数値だと思われちゃうのかな・・・。

っていうか、これって、S1がStringになる、っていうことじゃなくて、S1にはString型で入力しろ、っていう意味なんですよね。。。
だから、String型にしてくれてるわけじゃないんで、こんなふうになっちゃうんですよね。。。