こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBAの変数変換のことです

VBAの変数変換のことです
整数変数=実数変数や実数変数=整数変数でCIntやCSng関数を使わないでOKでしょうか?

Dim VAR(20) As Single '単精度浮動小数点数型 (Single)
Dim IVARO(20) As Integer '整数型 (Integer)
Dim IVAROC(20) As Integer '整数型 (Integer)

IVARO(NCD) = VAR(NCD) 'Single to Integer
IVAROC(NCD) = CInt(VAR(NCD)) 'Single to Integer

これで、IVARO(NCD)とIVAROC(NCD)には同じ値が入っているのですが、
整数=実数でCInt関数を使わないで整数にする構文はOKでしょうか?

投稿日時 - 2020-07-08 16:44:51

QNo.9770079

困ってます

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

 なぜそれ用の関数を使用しないのかはともかく、その構文で問題なく整数になります。

投稿日時 - 2020-07-08 21:51:09

補足

なぜこんなことを思いついたか補足です・・・・
1回のJOBDATAは100件で100回のJOBDATAをOUTPUT用に100,100で保存して置きたいのです。
VAR(100)の中にはDooLoop制御や計算分岐や印刷分岐などで整数で使たい変数があります、
例えばLPRT=VAR(25)の整数で使った後にVAR(25)=LPRTで整数の値でVAR(25)へ戻しておきます。
そして、JOB終了時にVARD(100,100)の中に戻したいときFor-Nextの中である番号に対して「データ型変換関数」を使うのが面倒なので変なことを考えてしましました。
どこを探しても載っていなかったので質問させていただきました・・・・・

Dim VAR(100) As Single 'INPUT DATA
Dim VARD(100,100) As Single 'OUTPUT DATA
LJOB = LJOB + 1
' JOB終了時OUTPUT用JOBDATA保存
For NCD = 1 To 100
VARD(LJOB, NCD) = VAR(NCD)
Next NCD

投稿日時 - 2020-07-09 11:17:15

お礼

「その構文で問題なく整数になります」のご回答に勇気つけられ、いろいろ調べました。
「自動型変換」と「暗黙の型変換」のキーワードにたどり着きました。
最初の一歩の後押しにとても感謝しております。ありがとうございました。
実は私は80歳のvbaをお勉強中です。

投稿日時 - 2020-07-10 14:25:46

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問