Excel VBA 質問スレッド No.54 (未解決)

ユーザーフォームのエキスとボックスのプロパティ省略時の扱い

投稿者 : WinArrow     投稿日時 : 2018/12/30(Sun) 11:38:08     OS : Windows 10     EXCEL : Excel 2007
テキストボックスのプロパティ省略時は「Value」として扱われる
というように説明されていますが、
テキストボックスの値をセルに代入する場合、省略すると、動作が異なります。
セルの書式が数値設定されていても、文字列で代入されてしまいます。
Text、Value指定で代入すると数値になります。

原因は、どこにあるのでしょうか?

[返信 1] Re : ユーザーフォームのエキスとボックスのプロパティ省略時の扱い
投稿者 : ヘンリー     投稿日時 : 2020/09/12(Sat) 10:06:36
原因はどこにあるかについてはわかりません。
おそらくExcelの仕様かと…

まずは変数と変数の型について調べてみてください。
以下のソースで検証した結果、
VBA上では、全て文字列として扱われています。

数値型に変換したければCIntやCLngを使えばよいかと思います。

Dim a As Variant

a = UserForm1.TextBox1.Value 'ここのValueを省略したりTextにしたりして試す

If a = "1" Then
MsgBox "文字"
Cells(1, 1) = a
ElseIf a = 1 Then
MsgBox "数値"
Cells(1, 1) = a

End If

当掲示板について
返信入力フォーム
お 名 前  :
内  容   :
ステータス  : この質問を解決済みにする

認証コード  :
        キャプチャ画像


( 処理日時 : 2021-05-10 04:37:28 )

Page
Top