下の2つのマクロはまったく同じ答えを返します。
"d"は日を加算なので1日づつ増えていくのはわかりますが、"w"はなんなのでしょうか?"ww"が一週間づつ増えるのもわかるのですが「○週目を返す」という"w"の意味がわかりません。
( ̄∇ ̄) ?
Sub test01()
dtDate = "2010/01/11"
Debug.Print DateAdd("d", 1, dtDate)
Debug.Print DateAdd("d", 2, dtDate)
Debug.Print DateAdd("d", 3, dtDate)
Debug.Print DateAdd("d", 4, dtDate)
Debug.Print DateAdd("d", 5, dtDate)
Debug.Print DateAdd("d", 6, dtDate)
Debug.Print DateAdd("d", 7, dtDate)
End Sub
Sub test02()
dtDate = "2010/01/11"
Debug.Print DateAdd("w", 1, dtDate)
Debug.Print DateAdd("w", 2, dtDate)
Debug.Print DateAdd("w", 3, dtDate)
Debug.Print DateAdd("w", 4, dtDate)
Debug.Print DateAdd("w", 5, dtDate)
Debug.Print DateAdd("w", 6, dtDate)
Debug.Print DateAdd("w", 7, dtDate)
End Sub
No.2ベストアンサー
- 回答日時:
こんにちは。
海外の掲示板でも同じ質問が出ていますが、MVPの偉い回答者さんも、あまり切れ味のある解答してないようですね。(押しなべて、国内外のMVPの方のコメントは切れ味が今ひとつですね。ワークシート関数でも、おかしなものがあります。)
これは、Access 側の問題のようですが、少し調べてみました。
#1さんの紹介した
http://support.microsoft.com/kb/115489/ja
を読むと、Interval の "w" は、本来は、ワークシート関数のWorkday のように、日付を足して、Weekday を探すのが目的だったようですが、それができていないようです。
たぶん、DateDiff等と共にできたもののようですが、DateDiff は、Interval の"w" に、違いがあるのに、DateAdd にはないようです。Excelでは、Workday 関数(VBA側では、参照設定、FUNCRES.XLAが必要)で、出来ます。
"y" は、もともと、年の日付を出すものであって、こちらは、DateAdd も DateDiff も両方とも出来ていないようです。これで、「仕様です (by design)」ということはないですね。だったら、言い訳なんて必要ないのですから。たぶん、開発途中で投げ出してしまったのだろうと思います。車だったらリコールなのですが……。
別に、Excel側では、VBAとして、これらの関数を使うプログラマは少ないだろうとは思いますが、これらすべて危なくて使えませんね。
Wendy02さま、いつもありがとうございます。
なるほど開発途中で投げ出してしまった関数ですか、面白いですね。
使わないようにします。
No.1
- 回答日時:
検索を掛けてみたところ、関数によって"w"の扱い方がマチマチのようで。
DataAdd関数の場合、DatePartと同じ時間間隔として扱われるらしく、この場合だと"w"は曜日を数値化したものという意味のようで。
DataAdd関数上では"d"と同じ動きになるようです。
MS自体が仕様と言っちゃってるみたいなので仕様なんでしょう^^;
なので引数としては認識するものの、非対応という感じかと。
参考URL:http://support.microsoft.com/kb/115489/ja
いろいろやってましたら、ほかにも、"y" があり、「年間通算日」だそうですが、これもまったく同じ答えを返します。
"d"の「日」はよくわかるのですが、"w"の「週日」というのは理解不能です。普通、週日といったらWeekday(平日)のことですよね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C#の2つの実行ファイルとアプリアイコンの変更について 1 2023/01/07 16:57
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
- その他(コンピューター・テクノロジー) Pythonの np.indicesに関する質問です。 2 2023/02/07 08:19
- その他(プログラミング・Web制作) pythonのmap、結果の利用は1度だけ? 5 2022/06/11 12:33
- その他(プログラミング・Web制作) 【Python初学者】以下コードについて教えていただきたいです 4 2023/04/19 13:01
- Ruby 初心者 パイソンプログラム 2 2022/05/30 07:34
- その他(プログラミング・Web制作) パイソンのプログラムで continue と passの違い 3 2022/03/25 07:38
- その他(プログラミング・Web制作) どうしてもエラーが解決できません。 1 2022/07/23 04:32
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VBA】PDF出力に任意のファイ...
-
複数のワークシートを、入力も...
-
エクセルのシートごとに連番を...
-
EXCEL VBA 複数シートを指定回...
-
Excelマクロ パスワードを入力...
-
エクセル シートの自動追加に...
-
エクセルで設定していないのに...
-
PowerPointの表内のカンマ
-
LINEのこの空白ってどんな意味...
-
Excelで「1234」と入力して...
-
エクセルで囲み線で出来ますか?
-
Excelで50個のセルに同じ文字を...
-
EXCELでタイトル行と一番下の行...
-
漢字→ひらがな 一括変換
-
Wordの差し込み印刷で空白行が...
-
結合されたセルの一部を変更す...
-
エクセルで「-3E+06」と...
-
INDEXとMATCH関数で#N/Aが出る...
-
セル上に表示された見かけ上の...
-
エクセルでエンターを押すと隣...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VBA】PDF出力に任意のファイ...
-
エクセルのシートごとに連番を...
-
エクセルで設定していないのに...
-
エクセルでページごとにヘッダ...
-
excel串刺し計算で合計値が表示...
-
Excelマクロ パスワードを入力...
-
複数のEXCELシートの印刷順の指定
-
既存ワークシートにピボットテ...
-
エクセルで、ハイパーリンクの...
-
社内SEです。機種、ライセンス...
-
エクセルで個人成績グラフをつ...
-
【VBA】#N/Aを無視して串刺し...
-
Access2010 Excelのエクスポー...
-
エクセルのイベントVBAを複数の...
-
この記号、手短(テミジカ)に日本語...
-
[EXCEL] あるフィールドをキー...
-
エクセル VBAでシートのコピー...
-
Excel 一覧表から特定の数値を...
-
excelのシート番号を取得したい...
-
マクロ記録機能を使ってグラフ...
おすすめ情報