Excel VBAで整数値「45」を文字列値「45」に変換するにはどうすればよいですか?
10 に答える
CStr(45)
必要なのはこれだけです (Convert String 関数)
CStr() 関数を試す
Dim myVal as String;
Dim myNum as Integer;
myVal = "My number is:"
myVal = myVal & CStr(myNum);
私の場合、関数 CString が見つかりませんでした。ただし、値に空の文字列を追加しても機能します。
Dim Test As Integer, Test2 As Variant
Test = 10
Test2 = Test & ""
//Test2 is now "10" not 10
変数を宣言しない最短の方法は、Type Hintsを使用することです:
s$ = 123 ' s = "123"
i% = "123" ' i = 123
これは でコンパイルされませんOption Explicit
。型は not になりますVariant
but String
andInteger
取り込んでいる文字列がたまたま E01 などの 16 進数である場合、CStr 関数を使用しても、最初に文字列変数型に格納しても、Excel はそれを 0 として変換します。この問題を回避する 1 つの方法は、値の先頭に ' を追加することです。
たとえば、Word の表から値を取り出して Excel に取り込む場合は、次のようになります。
strWr = "'" & WorksheetFunction.Clean(.cell(iRow, iCol).Range.Text)
最も重要なのは、Excel シートからデータを取得している間です。より大きな数は自動的に科学数、つまり e+10 に変換されるためです。
したがって、これにより、より一般的な答えが得られると思います。落下の有無は確認していません。
CStr(CDbl(#yourNumber#))
これは、e+ 変換された数値に対して機能します。ちょうどCStr(7.7685099559e+11)
"7.7685099559e+11" と表示されるので、期待どおりではありません: "776850995590" だから、私の答えはより一般的な結果になると言いたいです。
よろしく、M