- ベストアンサー
EXCELのVBAの数字。
VBAで「Maisuu」に応じて、セルに表示される数字を制御するようにして有ります。 If iMaisuu > 1 Then suuji = Chr(48 + pg) End If というようなかんじにしてあるのですが、10を超えると数字が出なくなってしまいます。 これを回避するにはどうしたらいいのでしょうか? Win・Ex2000です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ちは! suuji = Chr(48 + pg) ↑ここでわざわざ数字をASCIIコードを使って文字列に変えてるからじゃないでしょうか? 当然のことながら、ASCIIコードは0~9までだから、それ以降は":"とか"@"とかになってしまいますよ。 どうしても文字列にするなら普通にCStrを使ってみて下さい。 suuji = CStr(pg) にしてみましょう。
その他の回答 (1)
- sienna
- ベストアンサー率35% (51/145)
回答No.1
iMaisuuが文字列型になっているということはありませんか? 数値型の宣言をするか If CINT(iMaisuu) > 1 Then でどうせしょうか?
質問者
お礼
すばやい回答ありがとうございます。 >If CINT(iMaisuu) > 1 Then の方法っていうのは If iMaisuu > 1 Then suuji = Chr(48 + pg) End If を If CINT(iMaisuu) > 1 Then suuji = Chr(48 + pg) End If とすればいいのでしょうか? これですとやはり10以上が出ないです。 >数値型の宣言をするか これはどのようにすればいいのでしょうか?
お礼
できました!! ありがとうございます。 >suuji = Chr(48 + pg) >↑ここでわざわざ数字をASCIIコードを使って文字列に変えてるからじゃないでしょうか? そういわれれば、Chrってキャラクタってことなんでしょうか? なんとなくそう思って使ってました。 そうですよね、文字は10とかってないですもんね。 本当にありがとうございました。