プロが教えるわが家の防犯対策術!

いつも大変お世話になっております。
連日の質問で申し訳ございません。
Application.InputBoxやInputBoxのテキストボックス?にはChangeイベントのような表示形式はあるのでしょうか?
入力したら表示形式を #,##0 に自然となるようにしたいのですが
ご教示お願い致します。

A 回答 (2件)

#1です


UserFormを代替えとして示しましたが、値の使い方で躓く可能性があるので
追記します
InputBoxの場合、セルに書き込む事や変数に代入するのは簡単なチェックは
必要かも知れませんが容易だと思います

UserFormの場合、セルに代入するのはあまり変わりませんが、
実行プロシージャで使われている変数に代入する場合は、少し通常と違う扱いになります

変数は、標準モジュールでグローバル変数として宣言します
こうする事でモジュール間で変数の使い廻しが出来ます

例 標準モジュール
Option Explicit
Public HOGE As Variant
Private Sub test()
UserForm1.Show
Range("A1") = HOGE
End Sub

UserForm1モジュール
Private Sub CommandButton1_Click()
HOGE = TextBox1.Value
Unload Me
End Sub
    • good
    • 0
この回答へのお礼

2回にわたりアドバイスありがとうございます
ユーザーフォームで代替えが懸命ですね
感謝致します

お礼日時:2022/08/10 11:26

こんばんは


InputBoxメソッドや関数にイベントは無いようですね
引数にFormatに代わるものも見当たりませんね
参考サイト http://officetanaka.net/excel/vba/tips/tips37.htm

なのでUserFormで作成するのが簡単だと思います
UserFormのChangeイベント例

Private Sub TextBox1_Change()
On Error Resume Next
With TextBox1
.Value = Format(.Text, "#,##0")
If IsNumeric(Right(.Text, 1)) = True Then
Exit Sub
End If
.Text = Left(.Text, Len(.Text) - 1)
End With
End Sub

未検証なので念のため、
On Error Resume Nextで逃げています。。
    • good
    • 0

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