• ベストアンサー

EXCELのVBAの数字。

VBAで「Maisuu」に応じて、セルに表示される数字を制御するようにして有ります。 If iMaisuu > 1 Then suuji = Chr(48 + pg) End If というようなかんじにしてあるのですが、10を超えると数字が出なくなってしまいます。 これを回避するにはどうしたらいいのでしょうか? Win・Ex2000です。

質問者が選んだベストアンサー

  • ベストアンサー
  • gajumaru
  • ベストアンサー率57% (38/66)
回答No.2

ちは! suuji = Chr(48 + pg) ↑ここでわざわざ数字をASCIIコードを使って文字列に変えてるからじゃないでしょうか? 当然のことながら、ASCIIコードは0~9までだから、それ以降は":"とか"@"とかになってしまいますよ。 どうしても文字列にするなら普通にCStrを使ってみて下さい。 suuji = CStr(pg) にしてみましょう。

KODAMAR
質問者

お礼

できました!! ありがとうございます。 >suuji = Chr(48 + pg) >↑ここでわざわざ数字をASCIIコードを使って文字列に変えてるからじゃないでしょうか? そういわれれば、Chrってキャラクタってことなんでしょうか? なんとなくそう思って使ってました。 そうですよね、文字は10とかってないですもんね。 本当にありがとうございました。

その他の回答 (1)

  • sienna
  • ベストアンサー率35% (51/145)
回答No.1

iMaisuuが文字列型になっているということはありませんか? 数値型の宣言をするか If CINT(iMaisuu) > 1 Then でどうせしょうか?

KODAMAR
質問者

お礼

すばやい回答ありがとうございます。 >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以上が出ないです。 >数値型の宣言をするか これはどのようにすればいいのでしょうか?

関連するQ&A