
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
今日の日付を変数で持ちたいなら以下のようになります
Sub Macro1()
Dim tDate As Date
tDate = Date
Range("A1").Value = tDate
End Sub
#02さんの補足で
>実は変数に利用するのは
>先月の月の数字なんです
>今日8月ですが
>1月の場合は変数に12を使いたいのです
これは意味が分かりません。もしかしたら「日付を変数で持つ」のではなく「月」を変数で持つということですか?
そうであれば整数型の変数になりますね
Sub Macro2()
Dim tDate As Date
Dim tMonth As Integer
tDate = Date '日付型変数に格納する
tMonth = Month(tDate) '日付型変数から「月」を取り出す
MsgBox tMonth & "月"
End Sub
No.4
- 回答日時:
<感想>
まず、質問文を見てやったことは、TODAYをExcelのヘルプで検索すること。
すると、日付/時刻関数として存在することが判りました。
つまり、これで、関数名の Today はチト拙いことが判ります。
ですから、VBエディタをオープンして、[挿入]-[標準モジュール]した後の[挿入]-[プロシージャ]の関数名を工夫。
Function を選び、[GetToday] としました。
Option Explicit
Public Function GetToday() As Date
End Function
その後、 As Date を付加して GetToday() 関数が、時刻/日付型を戻すようにしました。
Public Function GetToday() As Date
Dim Hiduke As Date
Hiduke = Date
GetToday = Hiduke
End Function
もちろん、変数に取り込まなくても構わないです。
Public Function GetToday() As Date
GetToday = Date
End Function
いずれにしろ、これで A1 の式に =GetToday() と書けば、本日の日付が表示されます。
なお、A1 の式に =Today() と書いても同じ結果を得られます。
そういう関数が用意されているので当然のことです。
<補足>
なお、特定のレンジに日付をコードでセットする場合のは、このような書き方も考えられます。
SetToday Me.Range(a1), 0 ' 本日
SetToday Me.Range(a1), -1 ' 先日
SetToday Me.Range(a1), 1 ' 明日
<シートのモジュール>
Private Sub CommandButton1_Click()
SetToday Me.Range(a1), 1
End Sub
<標準モジュール>
Public Sub SetToday(ByVal T As Range, ByVal M As Integer)
T = Date + M
End Sub
VB だけで関数を用いている限りでは、既定の関数との関数名の競合という不具合はないかも知れません。
が、式に組み込むことも考えられます。
そういう意味では、GetToday()、SetToday() とオリジナルな関数名を付与されることを勧めておきます。
No.3
- 回答日時:
質問のコードを実行したら
i = Day(Today())
の行でエラー指摘があり、「Functionまたは変数が必要です」と出るじゃないですか。
そこまで、絞って言ってくれているのに、質問が
「>今日の日付を変数に利用する場合は
と一般的であるのはおかしい。
変数が未定義か関数が見つからないといっているのに。
エクセル関数のTODAY()とVBAのNOW()の違いは、不統一だが、有名な点。
「Accessの場合、今日の日付を取得する関数はTODAYではなくDateなのです。」 ということもある。
ーー
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr; …
Range("a1").Value = WorksheetFunction.today()
については、todayはワークシート関数として提供されていないので、エラーが出ます。
ーー
すぐVBA todayでWEB照会してみたらどうです。
ーー
Dim i As String
と文字列にしているが、Day関数は整数を戻すとなっていますよ。
今回はエラーにはならないですが。またエクセルの強力な数値化機能で、数がセットされているが。
ーー
Sub Today()
関数やステートメントその他にありそうな名前をストレートにモジュール名、変数名などに
使わないほうが良いのではないですか。
>「Functionまたは変数が必要です」と出るじゃないですか。
そこまで、絞って言ってくれているのに
Functionって何を指しているのか用語がよくわかっていない
>すぐVBA todayでWEB照会してみたらどうです
そういう探し方をすることすら知らない、というか発想できない

No.1
- 回答日時:
>i = Day(Today())
ここが間違い。Day()の中にはToday()なんていうVBAで定義されていないでたらめな関数じゃなくてNowが入ります。それに質問者さんの書き方だと無駄が多いです。Sud Today()とEnd Subの間が質問者さんの書き方だと3行ですけど1行で済みます。一応、訂正済みのものを載せておきます。
Sub Today()
Range("A1").Value = Day(Now)
End Sub
それと、ココで聞く前に自分でも探す努力をしてください。「エクセル VBA」などで検索すればVBAの解説サイトがいくらでも出てきます。こんな初歩的な部分ならサイトの内容でほぼ確実に理解できますよ。もしくはVBAの解説本を買ってください。中古で探せば500円程度でも買えますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 【再投稿】VBAのシフト表でバグが出て困っています 3 2022/09/24 08:29
- Visual Basic(VBA) Sheet2の日付をキーにオートフィルターで2023年1月のデータを抽出し、Sheet3へ書き出すた 2 2023/03/06 23:57
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) 【マクロ】ボタンを押すごとに、A1セル、A2セル、A3セルに日付を入力 3 2023/01/25 00:12
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「24日の0時」って・・・
-
差し込み印刷に当日の日付が入...
-
マクロボタンを押すと、ファイ...
-
日付の大小の表現
-
回覧板の日付について質問です...
-
「時間」、「期日」、「日付」...
-
Excelについて
-
フォームの値をクエリーに反映...
-
履歴書の日付間違いで落ちますか。
-
エクセルで日付別にシートを分...
-
PDFファイルに日付を名前にして...
-
Visual Basicで使えないExcel関数
-
Excelで1週間毎の集計(今週と...
-
Excelでヘッダに前日の日付を表...
-
Access グループ毎で直近25件...
-
エクセルで6ヵ月後を自動入力で...
-
エクセル 日付の表示
-
2つの日付の中間の日付 エク...
-
ACCESSVBAのseekで複数INDEX検...
-
EXCELで日付を****年上期、****...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロボタンを押すと、ファイ...
-
「24日の0時」って・・・
-
回覧板の日付について質問です...
-
日付の大小の表現
-
差し込み印刷に当日の日付が入...
-
「時間」、「期日」、「日付」...
-
エクセル マクロ 名前を付けて...
-
エクセルで日付別にシートを分...
-
EXCELで日付を****年上期、****...
-
履歴書の日付間違いで落ちますか。
-
Excelについて
-
フォームの値をクエリーに反映...
-
エクセルで6ヵ月後を自動入力で...
-
会社や役所などに提出する書類...
-
日付以外のデータを抽出したい...
-
ACCESSで日付ごとに自動連番(...
-
エクセルで日付け表示で、明治...
-
Excelで1週間毎の集計(今週と...
-
Excelでヘッダに前日の日付を表...
-
2つの日付の中間の日付 エク...
おすすめ情報