VBAで入力フォームを作りたいのですが、入力日と納期の欄で、その日の日付と、納期としてその翌日の日付が自動的に入っているようにしたいです。コード?プロパティの設定等、よいやり方を教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/03/29 22:27:50
  • 終了:2007/04/05 22:30:03

回答(3件)

id:nandedarou No.1

nandedarou回答回数230ベストアンサー獲得回数342007/03/29 23:07:39

ポイント27pt

Date で当日の日付が取得できます。

CDate(Date) + 1 で翌日の日付が取得できます。

入力日欄のテキストボックスの名前がTextBox1、納期の欄のテキストボックスの名前がTextBox2だとすると

TextBox1.Text = Date
TextBox2.Text = CDate(Date) + 1

とイベントプロシージャに書けばいいです。


例えば、ユーザーフォームが表示されたときに、自動的に入力したければ、ユーザーフォーム名が「UserForm」ならば

Private Sub UserForm_Activate()
    TextBox1.Text = Date
    TextBox2.Text = CDate(Date) + 1
End Sub

ボタンをおしたときに表示したければ、例えば、ボタン名が「CommandButton1」ならば、

Private Sub CommandButton1_Click()
    TextBox1.Text = Date
    TextBox2.Text = CDate(Date) + 1
End Sub

と書いて下さい。

※「この質問・回答へのコメント」を回答受付中にできるように設定して頂ければ、わからないことがあれば、コメントにてサポートします。

http://q.hatena.ne.jp/answer ダミー

id:Mook No.2

Mook回答回数1312ベストアンサー獲得回数3912007/03/29 23:24:19

ポイント27pt

ユーザフォーム UserForm に日付入力用のTextBox1、TextBox2 の二つあったとします。


シート上に CommandButton を配し、これを押したときにユーザフォームを表示するとした場合、

Private Sub CommandButton_Click()
    UserForm.TextBox1.Value = Format(Date, "YYYY/MM/DD")
    UserForm.TextBox2.Value = Format(Date + 1, "YYYY/MM/DD")
    UserForm.Show
End Sub

とすることで、表示時に日付が入った形となります。


日付の欄が年、月、日が分かれているような場合、それぞれが YearTextBox#、MonthTextBox#、DayTextBox# のような形だったとすると、それぞれに入力する場合は

Private Sub CommandButton_Click()
    UserForm.YearTextBox1.Value = Year(Date)
    UserForm.MonthTextBox1.Value = Month(Date)
    UserForm.DayTextBox1.Value = Day(Date)

    UserForm.YearTextBox2.Value = Year(Date + 1)
    UserForm.MonthTextBox2.Value = Month(Date + 1)
    UserForm.DayTextBox2.Value = Day(Date + 1)
    UserForm.Show
End Sub

のような形で実現できるかと思います。

http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_080.html

id:SALINGER No.3

SALINGER回答回数3454ベストアンサー獲得回数9692007/03/29 23:53:49

ポイント26pt

その入力フォームのInitializeイベントに、テキストボックスに下のように値を入力するコードを書けばいいです。

Private Sub UserForm_Initialize()
    TextBox1.Value = Date
    TextBox2.Value = Date + 1
End Sub

http://q.hatena.ne.jp/

  • id:nandedarou
    訂正します。(訂正しなくても、問題なく動きますが、無駄なので…)
    >CDate(Date) + 1
    正しくは、Date + 1

    ちゃんとうるう年なども考慮して動作するか、CDate('2004/2/28') + 1 などとして、テストしておりました。それを実際のコードに直す際に、不要なCDateを残してしまいました。申し訳ありません。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません