
No.4ベストアンサー
- 回答日時:
#2です。
お礼の部分に答えて、Private Sub cmdstart_Click()
Dim addYear As Integer
Dim addMonth As Integer
Dim addDay As Integer
Dim addDate As Date
addYear = 2003
addMonth = 2
addDay = 25
' CmbYear.Text = Val(addYear)
' CmbMonth.Text = Val(addMonth)
' CmbDay.Text = Val(addDay)
addDate = DateSerial(addYear, addMonth, addDay)
Label1.Caption = Str(addDate + 13)
' lblafter30.Caption = Str(addDate + 29)
' lblafter90.Caption = Str(addDate + 89)
End Sub
で動きました。
addYearなどをIntegerで定義して、Valするのはおかしい。
ValしたものをTextにセットするのもおかしい。
上記で13日後はlabel1.Captionに03/03/10が表示しました。だから足し算で13日後が求められるのは正しいでしょう。
>ValしたものをTextにセットするのもおかしい。
ここで、右辺と左辺を勘違いしてしまっていたようでした^^;
一日置いて、見直すと気がついたりするものですね。
有り難う御座いました。
No.3
- 回答日時:
Private Sub cmdstart_Click()
Dim addYear As Integer
Dim addMonth As Integer
Dim addDay As Integer
Dim addDate As Date
CmbYear.Text = Val(addYear)
CmbMonth.Text = Val(addMonth)
CmbDay.Text = Val(addDay)
addDate = DateSerial(addYear, addMonth, addDay)
lblafter14.Caption = Str(addDate + 13)
lblafter30.Caption = Str(addDate + 29)
lblafter90.Caption = Str(addDate + 89)
End Sub
↑
どこで値が代入されているのですか?
ヒントだけ出しますので、後はご自分で考えましょう。
Private Sub cmdstart_Click()
Dim addYear As Integer
Dim addMonth As Integer
Dim addDay As Integer
Dim addDate As Date
Call MsgBox("addYear, addMonth, addDay → " & CStr(addYear) & ", " & CStr(addMonth) & ", " & CStr(addDay))
Debug.Print "addYear, addMonth, addDay → " & CStr(addYear) & ", " & CStr(addMonth) & ", " & CStr(addDay)
CmbYear.Text = Val(addYear)
CmbMonth.Text = Val(addMonth)
CmbDay.Text = Val(addDay)
Call MsgBox("addYear, addMonth, addDay → " & CStr(addYear) & ", " & CStr(addMonth) & ", " & CStr(addDay))
Debug.Print "addYear, addMonth, addDay → " & CStr(addYear) & ", " & CStr(addMonth) & ", " & CStr(addDay)
addDate = DateSerial(addYear, addMonth, addDay)
Call MsgBox("addYear, addMonth, addDay → " & CStr(addYear) & ", " & CStr(addMonth) & ", " & CStr(addDay))
Debug.Print "addYear, addMonth, addDay → " & CStr(addYear) & ", " & CStr(addMonth) & ", " & CStr(addDay)
Call MsgBox("DateSerial(addYear, addMonth, addDay) → " & CStr(DateSerial(addYear, addMonth, addDay)))
Debug.Print "DateSerial(addYear, addMonth, addDay) → " & CStr(DateSerial(addYear, addMonth, addDay))
Call MsgBox("addDate = " & CStr(addDate))
Debug.Print "addDate = " & CStr(addDate)
lblafter14.Caption = Str(addDate + 13)
lblafter30.Caption = Str(addDate + 29)
lblafter90.Caption = Str(addDate + 89)
Call MsgBox("addYear, addMonth, addDay → " & CStr(addYear) & ", " & CStr(addMonth) & ", " & CStr(addDay))
Debug.Print "addYear, addMonth, addDay → " & CStr(addYear) & ", " & CStr(addMonth) & ", " & CStr(addDay)
Call MsgBox("DateSerial(addYear, addMonth, addDay) → " & CStr(DateSerial(addYear, addMonth, addDay)))
Debug.Print "DateSerial(addYear, addMonth, addDay) → " & CStr(DateSerial(addYear, addMonth, addDay))
Call MsgBox("addDate = " & CStr(addDate))
Debug.Print "addDate = " & CStr(addDate)
End Sub
>どこで値が代入されているのですか?
このセリフで、右辺と左辺の間違いにやっと気がつきました。
一生懸命、関数の使い方についてヘルプや参考書を見ていました。
一日、日を置いて見直すと案外気がつくものですね^^;
有り難う御座いました。
No.2
- 回答日時:
Sub test01()
d = DateSerial(2003, 2, 25)
MsgBox d
d = d + 10
MsgBox d
End Sub
を標準モジュールで実行して見てください。
感じを掴んだ後に
コンボボックス3つで上記2003、2、25をストリングで得てください。yy、mm、ddとします。
Dateserial関数Dateserial(yy,mm,dd)で日付けシリアル値になります。あとx日後(前)を求めるのは単に足し算 d+x で求められます。
Sub test01()
d = DateSerial("2003", "2", "25")
MsgBox d
d = d + 10
MsgBox d
End Sub
でも上手く行きますから、ストリングで大丈夫です。
丁寧な回答有り難う御座います。
下記のように記述してみたのですが、うまくいきません。
どこがおかしいのか自分にはわからないので、今一度ご指導願えたらと思います。
コマンドボタンのイベントプロシージャだけを載せます。
cmdstart:コマンドボタン
CmbYear:コンボボックス1
CmbMonth:コンボボックス2
CmbDay:コンボボックス3
lblafter14:ラベル1
lblafter30:ラベル2
lblafter90:ラベル3
Private Sub cmdstart_Click()
Dim addYear As Integer
Dim addMonth As Integer
Dim addDay As Integer
Dim addDate As Date
CmbYear.Text = Val(addYear)
CmbMonth.Text = Val(addMonth)
CmbDay.Text = Val(addDay)
addDate = DateSerial(addYear, addMonth, addDay)
lblafter14.Caption = Str(addDate + 13)
lblafter30.Caption = Str(addDate + 29)
lblafter90.Caption = Str(addDate + 89)
End Sub
No.1
- 回答日時:
DateAdd関数、DateSerial関数をヘルプで調べてください。
ついでに余裕があれば、下記の関数も調べておくと便利です。
DateDiff
IsDate
DatePart
CDate
Year
Month
Day
Hour
Minute
Second
Date
Now
Timeserial
WeekDay
Format
ヒントをくださり有り難う御座います。
ヘルプや参考書などを参考にしてみましたが、>2のような状況です。
恐らく基本的な事が間違っているのではないかと思うのですが、自分ではどこが違うのかわかりかねている次第です。
計算結果までうまくいきましたら、Format関数などで和暦などを使って綺麗な表示をしていきたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトが実行中か...
-
コマンドプロンプトで表示が多...
-
ttlで戻り値を取得する方法
-
Tera Term Proに関する質問です。
-
コマンドプロンプトですべてのU...
-
ExcelVBAでDOSコマンドの標準出...
-
VBA でshell関数を使ってコマン...
-
バッチファイルでキー操作を行う。
-
"伴われる"は正しい日本語ですか?
-
文字の点滅はどうやるのですか?
-
TEXの表の位置が・・・
-
RTX1100の削除コマンド
-
【Teratermマクロ】文字列の一...
-
C#でローカルユーザーやグルー...
-
ディスクの空き容量を取得する...
-
(コマンドプロンプト)コマンド...
-
コマンドプロンプトで文字入力...
-
別のユーザーフォームのコマン...
-
JP1起動バッチについて
-
デフォルトのショートカットキ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトが実行中か...
-
コマンドプロンプトで表示が多...
-
ttlで戻り値を取得する方法
-
別のユーザーフォームのコマン...
-
バッチファイルでキー操作を行う。
-
Tera Term Proに関する質問です。
-
【Teratermマクロ】文字列の一...
-
VBA でshell関数を使ってコマン...
-
VBユーザーフォームで時間入力
-
文字の点滅はどうやるのですか?
-
"伴われる"は正しい日本語ですか?
-
VB6で、コマンドボタン自身の色...
-
PowerShell実行結果をデスクト...
-
コンボボックス(最終行取得)
-
EEPROMのデータの初期化について
-
入力待ち状態になるexeファイル...
-
JP1起動バッチについて
-
コマンドプロンプトですべてのU...
-
ImageMagickを使って画像の特定...
-
ACCESSのサブフォームの...
おすすめ情報