アプリ版:「スタンプのみでお礼する」機能のリリースについて

一度、singleで定義した変数をLongなどほかの型に変更したいのですが
これはできないのでしょうか?

Dim aaa As Single

aaa = 2.4

Dim aaa As Long

でやってもうまくいきませんでした。

ReDim aaa As Long

は配列しか使えないようです。
Variant型を使うしかないのでしょうか?

A 回答 (5件)

どうして、そのようなことをなさりたいのでしょうか。


直接、型を変更することは出来ませんが、
そのようにしたい、理由、背景などを説明していただければ、別な解決方法があるかも知れません。
    • good
    • 0

同じ変数名を2回定義してはダメです。


singleの変数とlongの変数を定義し、一方からもう一方へ値を代入します。
そういった要求への対処方法を調べる際のキーワードは「キャスト」です。
例えば「vba キャスト」といったキーワードで探してみましょう。

参考まで。
    • good
    • 0

これで、どうですか?



Dim aaa As Double
Dim lll As Long
aaa = 123456.789
lll = CLng(aaa)
    • good
    • 0

こんばんは。



私は、他の方の書き込みもごもっともですが、もう少し突っ込んで言わせていただくと、Variant 型変数で可能だとしても、変数の使い回しは、基本的には不可だということです。

(できる・できないではなく、VBAでコーディング規則なのですが、それ自体が各社各様ですから、決まったものではありませんが……)

使い回しの変数を使ったコードは、目も当たられないほど無残な気がしてくるのです。

Single 型 を丸めると、Integer 型にはなります。Double型を丸めると、Long型になります。しかし、それを新たな変数に代入するのは良いのですが、変数自体のデータ型を変えてしまうのは、読みにくくてしょうがありません。自己流は、結果的には、可読性の低下やミスを誘発する恐れがあります。
    • good
    • 0

No.3です。



No.4さんの記述を読んで、間違った解釈をした事に気づきました。
一度定義した変数aaaの型を途中で変えるということだったのですね。
確かに出来なくはないですが、No.4さんのおっしゃるとおり
「すべきではない」と思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています