• 締切済み

VBAでの質問です。

VBAで予約フォームを作っているのですが、 入力画面(userform1) 名前 住所 希望日 希望部屋番号 電話番号 の入力をするのですが、 名前だったら、日本語じゃないとエラー(例えば、数字入力されたらエラー)表示 電話番号だったら、数字じゃないとエラー(例えば、ひらがなやかたかなで入力されたらエラー)表示 をしたいのですが、やり方がわかりません。 分かる方いましたら、教えてください。 エラー表示は、userform1でラベルに表示されるようにしています。

みんなの回答

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

userformにどんな、Controlを配置するのかわかりませんので textbox、comboboxであれば、IMEModeで入力モードを設定することも出来ますよ 電話番号は"-"入れると、文字列になりますよ 参考まで

  • mindatg
  • ベストアンサー率48% (110/227)
回答No.1

非常に漠然としすぎです。丸投げでしょうか 簡単な処理例だけ挙げておきます。 >名前だったら、日本語じゃないとエラー(例えば、数字入力されたらエラー)表示 1文字ずつ文字コードを検査する。 日本語以外が来たらエラーにする。 参考:http://euc.jp/i18n/charcode.ja.html#chap1 >電話番号だったら、数字じゃないとエラー(例えば、ひらがなやかたかなで入力されたらエラー)表示 入力するコントロールのプロパティでIMEをオフにしておく。(日本語入力させない為) IsNumericとかで数値かどうかを検査する。 数字以外ならエラーにする。 処理でエラーが返ってきたら、ラベルのCaptionを変更する。

kekure
質問者

お礼

初めての質問でどうすればいいのか分かりませんでした。 申し訳ありません。 表示画面としては入力項目は全てテキストボックスで行ってます。 入力が終わると、完了のコマンドボタンクリックで予約完了userform3にとぶつくりです。 完了ボタン↓↓ Private Sub CommandButton2_Click() If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" _ And TextBox5.Text <> "" And TextBox6.Text <> "" Then UserForm3.TextBox1 = TextBox1.Text UserForm3.TextBox2 = TextBox2.Text UserForm3.TextBox3 = TextBox3.Text UserForm3.TextBox4 = TextBox4.Text UserForm3.TextBox5 = TextBox5.Text UserForm3.TextBox6 = TextBox6.Text UserForm3.Show ElseIf TextBox2.Text = "" Then Label75 = "名前が入力されていません。" ElseIf TextBox3.Text = "" Then Label75 = "住所が入力されていません。" ElseIf TextBox4.Text = "" Then Label75 = "希望部屋が入力されていません。" ElseIf TextBox5.Text = "" Then Label75 = "上限価格が入力されていません。" ElseIf TextBox6.Text = "" Then Label75 = "下限価格が入力されていません。" End If End Sub このラベル75にエラーを表示させる予定です。

関連するQ&A