• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA Excelのyy/mmm/ddをUserFormに入力)

VBA Excelでの日付入力と修正について

このQ&Aのポイント
  • VBA Excelを使用して、UserForm内のTextBoxに日付を入力する方法について説明します。
  • また、間違ったデータを修正する際に、Excelに登録している日付を自動的にTextBoxに入力する方法もご紹介します。
  • 詳細は以下の質問文章をご覧ください。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 >【TextBox1】 yy >【TextBox2】 mm >【TextBox3】 dd > >の形で戻すことは可能ですか? もう少し、ご質問に対して、気をつけていれば良かったでした。すみませんね。そのご質問どおりに考えると、  If IsDate(Cells(i, 2).Text) Then       myDate = Cells(i, 2).Value2       TextBox1.Value = Format$(myDate, "yy")       TextBox2.Value = Format$(myDate, "mm")       TextBox3.Value = Format$(myDate, "dd")  End If   こんな風にするのが、一番忠実のような気がしました。たぶん、ご存知ですよね。 なお、Format 関数の、$ が、付いているのは、テキスト出力しているということです。そのままにすると、Variant 出力になりますが、あまり、今の時代は、付いていても、付いていなくても、大きな違いはないと思います。

tsu-u-san
質問者

お礼

有難うございました。 解決しました。 しかし、よく直ぐに分かりますね。とても助かりました。 自分なんか、参考書を広げて悩んだあげくここで聞く始末なので・・・ もう少し、色々勉強します。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >【TextBox1~3】 こちらに戻すということですね。 >TextBox】に呼び出したいNo.を入力して【CommandButton2】(呼び出し)をクリックするとそのNo.の行のデータが【TextBox】・【ComboBox】・【ListBox】にデータが反映される(戻る?)ようにしているのですが、 私は、ここの仕組みがどうされているのか分からなかったのですが、まあ、それはそのままにしておきます。 【TextBox】に呼び出したいNo. のTextbox を TextBox4 とします。 Private Sub CommandButton1_Click() に以下のように加えたらいかがですか? Cells(i, 2).Value2 , Value2 でなくても、Value だけでもよいです。  i = TextBox4.Value + 9 は、行の呼び出し   Dim myDate As Date   Dim i As Long   If Val(TextBox4.Value) > 0 Then     i = TextBox4.Value + 9     If IsDate(Cells(i, 2).Text) Then       myDate = Cells(i, 2).Value2       TextBox1.Value = Year(myDate)       TextBox2.Value = Month(myDate)       TextBox3.Value = Day(myDate)     End If   End If なお、お礼欄を使えば、こちらに直接連絡が入りますが、補足欄ですと、回答が遅くなります。予めご了解ください。

tsu-u-san
質問者

お礼

有難うございます。 TextBoxに反映(戻す)出来ました。 ただ、もう1つ説明不足だったのですが、上記の場合TextBoxに戻した場合 【TextBox1】 yyyy 【TextBox2】 m 【TextBox3】 d になりますが、これを 【TextBox1】 yy 【TextBox2】 mm 【TextBox3】 dd の形で戻すことは可能ですか? それと、丁寧にお礼欄の使い方(?)まで教えて下さいまして有難うございました!

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 同じテキストボックスを使いながら、前回の話とは違うのですね。 >自動的に入力することは出来るでしょうか? 質問の中の文章では、不十分です。 TextBox1 ~3 にセルから入れるのは、出力の反対のことをすればよいはずです。 >ある日、データを間違えて入力 ある日とはいつですか?任意のセルのことですか? 修正するセルをどのように決定するのでしょうか? 一体、どこのセルなのでしょうか? 起動時に登録で入れた部分でしょうか? 直すのは、UserForm をモードレスにして、直接、手書きのほうが早かったりするのではないでしょうか?

tsu-u-san
質問者

補足

早速の回答有難うございました。 説明不足で申し訳ありませんでした。 UserFormには、日付の【TextBox1~3】以外にも、入力が出来る【TextBox】や【ComboBox】・【ListBox】があります。 これらを、入力して【CommandButton1】(登録)をクリックすることにより下記の様にExcelに反映させるようにしています。(登録する毎に最終行に自動的にNo.を入力して反映します。)    A     B      C     D   ・・・・ ・ ・ 9 No.   日付     商品名     価格 ・・・・・ 10 1   2008/03/03  ○○○    ○円 11 2   2008/03/03  ×××    ×円 12 3   2008/03/03  △△△    △円 13 4   2008/03/03  ■■■    ■円 14 5   2008/03/03  ◎◎◎    ◎円 15 6   2008/03/03  □□□    □円 16 7   2008/03/03  ▼▼▼    ▼円 ・ ・ ・ 上記の様なデータを作成していきましたが、「入力間違い」や「修正」が出てきた場合、UserFormにある【TextBox】に呼び出したいNo.を入力して【CommandButton2】(呼び出し)をクリックするとそのNo.の行のデータが【TextBox】・【ComboBox】・【ListBox】にデータが反映される(戻る?)ようにしているのですが、日付だけはどのようにしたらいいか分かりません。 日付は、Excelの B列に yyyy/mm/ddの形式で入っています。 UserFormに反映させる方法があれば教えて頂きたいのですが・・・

関連するQ&A