| エクセル | の学校 |
| 8.一覧 | 9.HOME |
| 1.Top | 2.Last |
『テキストボックスの入力方法』(栗栄太)
どのファイルでも共通で使用できるように 個人用マクロブック(PERSONAL.XLSB)を作っています。 テキストボックスに入力するのが"8:32" なのですが Range(TextBox1.text) でエラーが発生しました。 原因は TextBox1.text が "8:32" ではなくて "0.35555555558:32"になっていました。 テキストボックスになにか設定が必要なのでしょうか?
< 使用 Excel:Microsoft365、使用 OS:Windows11 >
Range(TextBox1.text)だとTextBox1.textが A1などのセルアドレスにする必要があるのでは (はてな) 2026/02/23(月) 07:53:52
少なくとも TextBox1.Text に "8:32" と入力したのに TextBox1.Text の文字列が 勝手に変わってしまうのもよくわかりません。
Debug.Print TextBox1.Text → "0.35555555558:32" (栗栄太) 2026/02/23(月) 08:04:01
Private Sub CommandButton3_Click()
ActiveCell.Value = TextBox1.Value
End Sub
ユーザーフォーム上の TextBox ではそのような現象は発生しませんでした。
(参考) 2026/02/24(火) 17:39:38
>dim str as string Str関数 ってのがあるの知ってます エラーにはならないけど あまり考えない人なんですね まあ大御所でも使ってたけど VBAには、他言語から入ってきたんでちょっと って感じだった (AI回答他) 2026/03/01(日) 14:20:21
Pythonとかでもビルトイン関数が隠れてしまった場合に、builtinsモジュールを付けて関数を呼んだりする事が出来るらしい。
何て云うのかな?「完全修飾名」? ってヤツ? JavaでもC#でもあると思うけど。 その辺はVBAも似たようなモンだと思ってしまえなくもないかなぁ... と。 (まぁ、あんまり知らんのですけど ^^;)
Dim Str(0) As String
Str(0) = "a"
Debug.Print Str(0)
Debug.Print Conversion.Str(100)
(白茶) 2026/03/02(月) 21:02:43
セルに文字列を代入しても、セルの書式によっては勝手に変換されちゃうよね という話なのでは?
代入前に明示的に文字列に変換する話とはまたちょっとちがうような
Sub test()
Range("A1").NumberFormatLocal = "G/標準"
Range("A1").Value = "8:32"
Debug.Print Range("A1").Text, Range("A1").Value
Range("A1").NumberFormatLocal = "0.0_ "
Range("A1").Value = "8:32"
Debug.Print Range("A1").Text, Range("A1").Value
Range("A1").NumberFormatLocal = "h:mm"
Range("A1").Value = "8:32"
Debug.Print Range("A1").Text, Range("A1").Value
Range("A1").NumberFormatLocal = "@"
Range("A1").Value = "8:32"
Debug.Print Range("A1").Text, Range("A1").Value
Range("A1").NumberFormatLocal = "0.0;0.0;0.0;@"
Range("A1").Value = "8:32"
Debug.Print Range("A1").Text, Range("A1").Value
End Sub
実行結果 h:mm 8:32 0.355555555555556 0.0_ 0.4 0.355555555555556 h:mm 8:32 0.355555555555556 @ 8:32 8:32 0.0;0.0;0.0;@ 0.4 0.355555555555556 (´・ω・`) 2026/03/03(火) 10:17:13
]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.