Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7883 / 13645 ツリー ←次へ | 前へ→

【36299】テキストボックスの入力制限について 真貴子 06/3/27(月) 18:24 質問[未読]
【36301】Re:テキストボックスの入力制限について Kein 06/3/27(月) 18:50 回答[未読]
【36302】Re:テキストボックスの入力制限について 真貴子 06/3/27(月) 19:03 お礼[未読]
【36303】Re:テキストボックスの入力制限について Kein 06/3/27(月) 19:10 発言[未読]
【36304】Re:テキストボックスの入力制限について 真貴子 06/3/27(月) 20:18 お礼[未読]

【36299】テキストボックスの入力制限について
質問  真貴子  - 06/3/27(月) 18:24 -

引用なし
パスワード
   おせわになります。
テキストボックスに数字と.(ピリオド)以外を入力したら、メッセージボックスにて、
下記のようなメッセージを表示させようと思ったのですが、エラーになってしまいます。
どう記述すれば良いのでしょうか?
あと、テキストボックスに文字を入力する時、自動的に半角にしたいのですが、
どうすればよいでしょうか?

Private Sub CommandButton1_Click()
x = Range("J1").Value
If IsNumeric(TextBox1.Value) Then
    MsgBox "数字を入力してください"
End If
ActiveSheet.Cells(ActiveCell.Row, 7).Value = x * Me.TextBox1.Value
  Unload Me
End Sub

【36301】Re:テキストボックスの入力制限について
回答  Kein  - 06/3/27(月) 18:50 -

引用なし
パスワード
   >数字と.(ピリオド)以外を入力したら
ならば少なくとも If Not IsNumeric(TextBox1.Value) Then という条件に
しないといけませんね。"以外" なんだから。で、どんなエラーが出るのでしょーか ?
いちおう、その下のコードも
>ActiveSheet.Cells(ActiveCell.Row, 7).Value = x * Me.TextBox1.Value


Cells(ActiveCell.Row, 7).Value = x * Val(TextBox1.Value)

と、する。テキストボックスの値は常に文字列型ですから、いったん数値型に変換
してから計算しないといけません。CIntとかCLngなどの変換でもOK。

【36302】Re:テキストボックスの入力制限について
お礼  真貴子  - 06/3/27(月) 19:03 -

引用なし
パスワード
   エラーは

ActiveSheet.Cells(ActiveCell.Row, 7).Value = x * Me.TextBox1.Value

ここの行でした。KEINさんのコードで治したら見事に解決しました。
ありがとうございます。

多重質問になってしまうのですが、先ほどのエラーメッセージを出した後、OKを押すと
ユーザーフォームが消えてしまうのですが、
もう一度同じ処理(テキストボックスの入力画面)をOKを押した後そのまま表示させるにはどうすればよろしいのですか?

【36303】Re:テキストボックスの入力制限について
発言  Kein  - 06/3/27(月) 19:10 -

引用なし
パスワード
   Unload Me

があるから、消えてしまうのでは ?
分からない語句の意味は、すべてヘルプで調べてみるという努力が必要ですよ。

【36304】Re:テキストボックスの入力制限について
お礼  真貴子  - 06/3/27(月) 20:18 -

引用なし
パスワード
   ありがとうございました。
無事解決いたしました^^

7883 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free