エクセル の学校
8.一覧 9.HOME
1.Top 2.Last

[[20260223073806]]

[ 初めての方へ | 一覧(最新更新順) |

|
| 全文検索 | 過去ログ | エクセルの学校HOME ]

 

『テキストボックスの入力方法』(栗栄太)

どのファイルでも共通で使用できるように 個人用マクロブック(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

dim str as string: str = "8:32" dim rng as range: set rng = range(str) → rng.Address = "$8$32" これは問題なく使えるので str を入力できるようにしたかったので dim rng as range: set rng = range(TextBox1.Text) にしたのですが,これができません。

少なくとも TextBox1.Text に "8:32" と入力したのに TextBox1.Text の文字列が 勝手に変わってしまうのもよくわかりません。

Debug.Print TextBox1.Text → "0.35555555558:32" (栗栄太) 2026/02/23(月) 08:04:01


すみません。 原因がわかりました。 シート上のActiveXコントロールは保持されていたのですが、 Personal.xlsb で入力した値はエクセルを終了すると 保持できないので、入力後にセルに保存して 再度読み込んでいました。 入力したデータ"8:32" これがセルに保存したときに 自動で変更されているようです。 書式設定の設定が必要なのだとは思いますが お手数をおかけしました。 (栗栄太) 2026/02/23(月) 08:21:29
 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




[ 一覧(最新更新順) |

]

キーボードヒント:[Home]または[Fn+Home]キーで一番上へ戻ります

YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.