• ベストアンサー

[EXCEL VB]入力規則、フォーム読み出しの方法

教えてください。 (1)入力規則について [TextBox]に「yyyy/mm/dd」以外の書き方や入力を行い [CommandButton]を押した場合はメッセージボックスを表示する というVBの表記の方法を教えてください。 (2) EXCELシート状にある、[CommandoButton]を押すと [UserForm]を呼び出す というVBの表記の方法を教えてください。 初歩的なことを質問してすみません。 また、VBの初歩的なアドバイスや方法、サンプルが記載されたような ページがあれば、教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

(1)入力規則 CommandButton1は日付形式でない入力をするとメッセージが出ます。 CommandButton2は */*/* の入力で、年/月/日 でなければメッセージが出ます。 月/日/年 の入力などはメッセージが出ます。 Private Sub CommandButton1_Click()   If IsDate(TextBox1.Text) = False Then     MsgBox "何かへんですよ"   End If End Sub Private Sub CommandButton2_Click()   With TextBox1     If IsDate(.Text) = True Then       Select Case True         Case .Text = Format(.Text, "yyyy/mm/dd")         Case .Text = Format(.Text, "yyyy/mm/d")         Case .Text = Format(.Text, "yyyy/m/dd")         Case .Text = Format(.Text, "yyyy/m/d")         Case Else: MsgBox "何かへんですよ(日付形式)"       End Select     Else       MsgBox "何かへんですよ(日付ではない)"     End If   End With End Sub (2)UserFormを呼び出す Sheet1にCommandButton1があり、UserForm1を呼び出します。 Sheet1のコードウインドウに書きます。 Private Sub CommandButton1_Click()   UserForm1.Show End Sub >サンプルが記載されたようなページがあれば・・・ mougをよく見ています。 http://www.moug.net/tech/index.htm

参考URL:
http://www.moug.net/tech/index.htm

関連するQ&A

  • [EXCEL VB] UserForm内でデータクリアー

    EXCEL VBで教えてください。 UserForm内に[TextBox]と[CommandButton]があります。 [CommandButton]を押下すると[TextBox]に表示されている データをClearする関数(モジュールシートの書き方)を 教えてください。

  • Accessでの入力規則について

    Access初心者です。 初歩的な質問なのですが、教えて下さい。。 日付を入力する際に【yyyy/mm/dd】以外の入力は エラーである表示をしたいのですがどうしたらよいでしょうか? エクセルの入力規則のように簡単にはできないでしょうか?

  • Excell(2003) VBA UserForm上のSheetの参照方法は

    Excell2003にてuserForm1にコントロールとしてスプレッドシートを載せています。 このuserForm1には、別にテキストボックス(textbox1)とコマンドボタンが二つ(commandButton1とCommandButton2)があります。 commandButton1がクリックされたとき、textbox1に入力された値をチェックしたのち、Me(userForm)上のSheet1の適当なセル(たとえばA2)にその値を入力したい。  また、CommandButton2がクリックされたときは、Sheet2のA2に入力したい。その場合Sheet2を表示する動作も必要です。  この場合 Q:本体のSheetではなく、フォーム上のSheetを指定する方法 Q:複数のSheetからなるフォーム上のspledSheetのいずれかを表示する方法  はどのようにしたら良いのでしょう。

  • TextBoxに日付を自動的に入れる

    VBAについて教えて下さい! 今、UserFormに「TextBox1」,「TextBox2」,「TextBox3」,「CommandButton1」があります。 「TextBox1」には自動的に年"yy"(上書き修正も出来るようにする) 「TextBox2」には自動的に月"mm"(上書き修正も出来るようにする) 「TextBox3」には自動的に日"dd"(上書き修正も出来るようにする) が入るようにして 「CommandButton1」をクリックすることによりExcelの「A1」に"yy/mm/dd" と言う形で自動的に入力することは出来ないでしょうか? また、その時にありえない日にちが入力された時にエラーが出て、「TextBox3」にカーソルが戻るようなことは出来ないでしょうか?

  • エクセルVBA フォームのテキストボックスの入力規則

    エクセル2000を使用しています。 VBAでフォームを作成しています。日付の入力項目をテキストボックスで 作りたいのですが、”yyyy/mm/dd”の形式で入力するようテキストボックスの中に表示し、それ以外の入力形式を制限するにはどのようにしたらよいでしょうか。

  • EXCEL VBAのユーザーフォーム上のテキストボックスの入力方法について

    すいません教えていただきたいことがあります。 EXCEL VBAのユーザーフォームについて、 コマンドボタンにタグを設定して、これにキーボードと同じ機能を持たせて テキストボックス内に入力することは可能でしょうか。 例えばコマンドボタンを「あ」~「ん」まで作り、それぞれのボタンに「あ」~「ん」までのタグを設定する。 Private Sub UserForm_Initialize() CommandButton1.Tag = "あ" CommandButton2.Tag = "い" ・・・・「ん」までボタンを作成する。 次に、 Private Sub CommandButton1_Click() TextBox1.Value = TextBox1.Value & CommandButton1.Tag End Sub Private Sub CommandButton2_Click() TextBox1.Value = TextBox1.Value & CommandButton3.Tag End Sub ・・・「ん」まで作成する。 この設定では、コマンドボタンのクリックで文字の追加はできますが、ボタンを押すと常に文字が一番後ろに追加されるため、 テキストボックスをクリックしても文章の途中に文字を挿入することが出来ません。 通常のキーボードの入力と同じようにテキストボックス内でクリックした箇所からコマンドボタンで入力を開始するような設定は可能でしょうか。 よろしくお願いします。

  • UesrFormのTextBoxに入れた日付をExcelに入力

    教えてください。 VBAでUserFormを作成しています。 その中に「TextBox1」があり日付を入力させます。 入力は、半角でyy/mm/ddで入力させて「CommandButton1」をクリックさせたらExcelに反映させるのですが、どうしても、日付が違う値になるのです。 半角で入力した日付をyy/mm/ddでExcelに反映させ、さらに誤った日付(例:08/02/31など実際に無い日)を入れた場合、再入力をさせたいのですが良い方法はありますか?

  • エクセルVBA、年齢計算について質問です

    失礼いたします、生年月日、基準日をテキストボックスに入力し、年齢を算出するマクロを作成してるのですが質問です。 以下のようなマクロを組んでいるのですが。 Dim 生年月日 As String Dim 開始日付 As String Dim 年齢 As String 生年月日 = "H" + UserForm1.TextBox1.Value + "/" + UserForm1.TextBox2.Value + "/" + UserForm1.TextBox3.Value 年齢基準日 = "H" + UserForm4.TextBox1.Value + "/" + UserForm1.TextBox5.Value + "/" + UserForm1.TextBox6.Value 年齢 = Application.Evaluate("=datedif(""" & Format(生年月日, "yyyy/mm/dd") _ & """,""" & Format(年齢基準日, "yyyy/mm/dd") & """,""y"")") 上記のようにそれぞれH”年”/”月”/”日”という形で取得しています。 この場合、適正な値が入力されると上手くいきますが、日付として成立しない値(例えば月に80など)を入力した場合にエラーが発生します。 エラーが発生した場合にエラー処理(例としてMsgBox+Goto処理)をしたいのですがどのようなコードを記入すればいいでしょうか?

  • VBA ユーザーフォームでデーターの入力

    いつもお世話になります。 WIN7 EXCELL2010 です。 現在は ユーザーフォームを起動し、 日時   は自動で今日の日付 ID    入力 売上金額 入力 を順次エンターキー クリックをクリックして 「入力」ボタンをクリックすると B C K列にデーターが入力されます。 この現状からいちいち「入力」ボタンをマウスに持ち替えるのはたくさんのデーターを 入力するに面倒で、キーボード上で作業が可能ならば改善したいと思っています。 「入力」ボタンのクリックを「キーボード」のエンター変えたいのですがどうマクロを記述すればいいかご指導いただけませんか。  ※併用が可能ならば「入力」ボタンでのデーター入力もできるのならありがたいのです。 よろしくお願いします。 参考 UserForm1 Private Sub CommandButton1_Click() ' y = 2 Do While Cells(y, 2) <> "" y = y + 1 Loop Cells(y, 2) = TextBox1.Text Cells(y, 3) = TextBox2.Text Cells(y, 4) = TextBox3.Text Cells(y, 11) = TextBox4.Text TextBox1.Text = Format(Date, "mm/dd") TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox1.SetFocus End Sub Module1 Sub FormDisp() UserForm1.Show vbModeless End Sub

  • UserFormのTextBoxに入力した値を保存する方法がありますか

    UserFormのTextBoxに入力した値を保存する方法がありますか? 具体的には、UserFormのTextBoxに2010/6/10と入力したときに シートのセルT13に表示されるように以下のマクロを作成しました。 Private Sub CommandButton1_Click() Range("T13").Value = 日付.Value If CloseMode = vbFormControlMenu Then Cancel = True Me.Hide End If End Sub 再度UserFormを開くと前の入力内容があるのですがExcelを保存 して閉じて再度シートを開くと空白になってしまいます。 UserFormを開いたタイミングで出力させたT13の値を返すという ようなマクロにするにはどうしたらよいでしょうか。 初心者なので詳しく教えていただけませんか。

専門家に質問してみよう