基礎講座第2章7 - 日付の扱い

この講座は有料講座です。
講座の購入後ご覧になれます。

ログインアカウントの新規作成

解説

日付時刻は、#シャープ#でくくります。表記に注意。とはいえ、実際には、プログラムのソースの中で日付時刻を記入することは滅多にありません。

【この動画で使用する教材ファイル】
 ・Kiso02_01.xls
 ・kiso_mm_movie.pdf(P10:講義概要)
※講座内で使用する資料は、この個別ページ内でダウンロードできます。

共有メモ

名前重要度メモ
Matsumoto-・文字列は””(ダブルクオート)でくくる
・日付は##(シャープ)でくくる
・日付はVBAにおいてはdd/mm/yyyyの順で表示される⇒表示セル内では書式設定に従ってyyyy/mm/ddになるのでそういうものだと覚える

この教材についての過去の質問・感想

13061 : 小川慶一の回答 (2021-07-11 20:31:11)

受講生 さん:

> こびとちゃんワーク、改めてやってみます。
> またつまづいてしまった際にはよろしくお願いします。

「やってみます」ということは、「まだやってない」ということですね...。

そして、このお返事では、こちらが提示した処方を実践しないままでいるということが明らかになったわけですが、では、果たして、受講生さんは、その代わりに別の努力をしたのか?その結果、疑問は解決したのかしなかったのか?ということは、分かりません。


なので、「努力してないし、(とりあえず後まわしにしただけで)疑問は解決していないのだろう」という前提で、少し詳細に解説します。

まず、各行の意味をコメントにて示します。
以下と理解が異なるようでしたら教えてください。

Sub HidukeHensu() 'こびとちゃん登場
	Dim dt 'dtという名前の変数(入れ物)を創る
	Range("A4").Value = #8/23/2011# 'セルA4 の 値 を 2011年8月23日 にする
	dt = Range("A4").Value 'dt の中身を、 セルA4 の 値にする→つまり、このときセルA4には 2011年8月23日 が入っているわけだから、セルA4には、 2011年8月23日 という値が入る
	Range("A5").Value = dt 'セルA5 の 値 を、 dt の値にする→つまり、このとき dt には 2011年8月23日 が入っているわけだから、セルA5には、 2011年8月23日 という値が入る
End Sub 'こびとちゃん退散


本当は上記に等しい作業を自分自身の頭と身体を使ってやってもらいたかったわけですが、さて、そのうえで、いただいた質問に回答します。

> 変数dtに使うA4にまずは日付を入れたあとで、変数dtの定義をしている

この言葉では、上に載せたコードのどの行(あるいは、どの行からどの行まで)のことを言っているのか分からないです。
また、(日本語としても意味不明ですが)言わんとしていることはコメントのどの内容ともそぐわないということに気づいてください。

それが、先の回答に書いた「理解か、言葉の表現か、少なくともどちらかが間違っている」ということです。

> 言葉の表現がおかしかったらすみません。

日本語で簡潔に説明できない場合、その概念なり実装なりについて理解ができていないと思っておいてください。

プログラミング言語を習得するとは、言語を習得することです。
外国語の練習、日本語をより上手に使えるようになるための練習と本質的には変わりありません。

「日本語の能力以上にエクセルマクロだけ得意になる」ということはないと思っておいてください。

言語表現では、何が言いたいのかを自分なりに整理することが大切です。
この部分の努力を人に投げている間は言語能力の上達は頭打ちです。


あと、「自分なりになんとか整理しよう」という強い動機をもってマインドマップなどの資料を見直すときこそ、エクセルVBAのスキルも日本語も上達するときです。
用語の定義、エクセルVBAの文法について意図を持って復習できるので、抽象的な概念についての理解も具体的な実装についての理解も深まります。

こういう機会を逃さず、積極的にモノにするようにしてください。こういう努力は、エクセルマクロに限らず、あらゆることに共通する能力の底上げにもなります(以下の参考記事参照)。

[参考]エクセルマクロ習得に関係する4つの能力
https://www.exvba.com/4skills.php#language


ひきつづき、よい学びを☆


13060 : 受講生さんのコメント (2021-07-11 17:46:36)

小川慶一さん:

ご回答ありがとうございます。
こびとちゃんワーク、改めてやってみます。
またつまづいてしまった際にはよろしくお願いします。

> 受講生 さん:
>
> おはようございます。
>
> > 変数dtに使うA4にまずは日付を入れたあとで、変数dtの定義をしているという理解ですが、大丈夫でしょうか。
> > 言葉の表現がおかしかったらすみません。
>
> 理解か、言葉の表現か、少なくともどちらかが間違っていまます。
>
> 手書きでこびとちゃんワークをやってみて、それから思考を再整理して、また質問していただければと思います。
> まずは、先に紹介したページの動画について、いっしょに声を出しつつ紙に書いて。
> その次に、このページのマクロについて同様にされると良いでしょう。
>
> それで解決してもしなくてもまた投稿してください。
> よろしくお願いします。
>


13050 : 小川慶一の回答 (2021-07-08 10:38:33)

受講生 さん:

おはようございます。

> 変数dtに使うA4にまずは日付を入れたあとで、変数dtの定義をしているという理解ですが、大丈夫でしょうか。
> 言葉の表現がおかしかったらすみません。

理解か、言葉の表現か、少なくともどちらかが間違っていまます。

手書きでこびとちゃんワークをやってみて、それから思考を再整理して、また質問していただければと思います。
まずは、先に紹介したページの動画について、いっしょに声を出しつつ紙に書いて。
その次に、このページのマクロについて同様にされると良いでしょう。

それで解決してもしなくてもまた投稿してください。
よろしくお願いします。


13048 : 受講生さんのコメント (2021-07-07 23:24:10)

小川慶一さん:

早速回答いただきありがとうございます。
一度見ていたはずですが、動画の、小人ちゃんが実際の動きを見ていると
理解が深まり、思い出してきました。

動画のように、Dim dt のすぐ後に、
”dt=Range("A4").Valueとしていなかったので、疑問に思いました。
変数dtに使うA4にまずは日付を入れたあとで、変数dtの定義をしている
という理解ですが、大丈夫でしょうか。
言葉の表現がおかしかったらすみません。
,<code>Sub HidukeHensu()
Dim dt
Range("A4").Value = #8/23/2011#
dt = Range("A4").Value
Range("A5").Value = dt
End Sub</code>

> 受講生 さん:
>
> こんばんは。
>
> 以下の動画が Dim の初登場です。
> https://online.pc5bai.com/movie/index/25/104
>
>
> > 講座で学んだことをキーワード検索ができますでしょうか。
>
> そういう機能は、今はないですね。。
> (やり方は思いつくのですが、システム側で対応したうえで、講座の内容のほうでも修正が必要になるので講座リニューアル時の課題にしておきます)
>
> また、基礎編の資料をDownloadしていただければマインドマップがありますので、まずは参照いただければと思います。
>
> まずは用件のみ。
> ひきつづき、よろしくお願いいたします。
>


13047 : 小川慶一の回答 (2021-07-07 21:40:46)

受講生 さん:

こんばんは。

以下の動画が Dim の初登場です。
https://online.pc5bai.com/movie/index/25/104


> 講座で学んだことをキーワード検索ができますでしょうか。

そういう機能は、今はないですね。。
(やり方は思いつくのですが、システム側で対応したうえで、講座の内容のほうでも修正が必要になるので講座リニューアル時の課題にしておきます)

また、基礎編の資料をDownloadしていただければマインドマップがありますので、まずは参照いただければと思います。

まずは用件のみ。
ひきつづき、よろしくお願いいたします。


13046 : 受講生さんのコメント (2021-07-07 21:19:00)

講座で学んだことをキーワード検索ができますでしょうか。
以下の”Dim”の書き方は何となくはわかるのですが、ちゃんと学習したいので、
どの講座で学習できるのか教えていただきたいです。
すみませんが、よろしくお願いします。

Sub HidukeHensu()
    Dim dt
    Range("A4").Value = #8/23/2011#
    dt = Range("A4").Value
    Range("A5").Value = dt
End Sub


12198 : さざなみさんのコメント (2020-06-15 07:05:11)

小川慶一さん:
ありがとうございます。さっそくやってみます。先頭のRは半角のつもりでした。
> さざなみさん:
>
> 結論から書くと、セルの書式設定を以下のとおりにすると、 #2020/06/15# 等の値を投入したとき、セルの表示は R02.06.15 といったものになります。
> [$-ja-JP]gee.mm.dd
>
>
> もっとも
>
> [$-ja-JP]gee.mm.dd
>
> なんて、覚えられませんね。
> 僕もこんなの覚えてはいません。
>
> では、どうするか?
> こういう文字列を得るときの手順があります。
>
> 書式設定されていないセルにとりあえず R02.06.15 という値を投入し、それからエクセルの [ホーム] → [セルの書式設定] で、どんな書式設定になっているかを調べます。
>
> すると、以下を得られます。
>
> [$-ja-JP]ge.m.d
>
> ここからは経験値ですが...。
> m を mm にすると月の表示が2桁になります。たとえば6月を示す 6 は 06 になります。
> d を dd にすると日の表示が2桁になります。たとえば8日を示す 8 は 08 になります。
>
> geは僕も馴染みないのですが、試しに gee と直してみたら、令和2年を示す 2 が 02 になりました。
>
> 同様の話をしていますので、以下も参考にしてください。
>
> 基礎講座第2章4 - セルの書式と、値の投入(後半にて)
> https://online.pc5bai.com/movie/index/25/112
>
> 書式設定の活用方法、書式設定が原因で起こりうる問題とその対処法
> https://online.pc5bai.com/movie/index/9/29
>
>
> なお、
>
> > R02.06.15とエクセルに表記したい
>
> ということなので、先頭のRは半角でなく全角をご所望のようですが...。
> そこは「どうしても」ということでしたら、ご自身で調べてみてください。僕なら、半角のままで仕事が進められるように周囲に働きかけます。
> 「DPR」で言うところの、「Rの最適化」です。
>
> エクセル仕事を劇的に楽にする「DPRフレームワーク」
> https://online.pc5bai.com/Package/index/35
>


12196 : 小川慶一の回答 (2020-06-15 05:20:44)

さざなみさん:

結論から書くと、セルの書式設定を以下のとおりにすると、 #2020/06/15# 等の値を投入したとき、セルの表示は R02.06.15 といったものになります。
[$-ja-JP]gee.mm.dd


もっとも

[$-ja-JP]gee.mm.dd

なんて、覚えられませんね。
僕もこんなの覚えてはいません。

では、どうするか?
こういう文字列を得るときの手順があります。

書式設定されていないセルにとりあえず R02.06.15 という値を投入し、それからエクセルの [ホーム] → [セルの書式設定] で、どんな書式設定になっているかを調べます。

すると、以下を得られます。

[$-ja-JP]ge.m.d

ここからは経験値ですが...。
m を mm にすると月の表示が2桁になります。たとえば6月を示す 6 は 06 になります。
d を dd にすると日の表示が2桁になります。たとえば8日を示す 8 は 08 になります。

geは僕も馴染みないのですが、試しに gee と直してみたら、令和2年を示す 2 が 02 になりました。

同様の話をしていますので、以下も参考にしてください。

基礎講座第2章4 - セルの書式と、値の投入(後半にて)
https://online.pc5bai.com/movie/index/25/112

書式設定の活用方法、書式設定が原因で起こりうる問題とその対処法
https://online.pc5bai.com/movie/index/9/29


なお、

> R02.06.15とエクセルに表記したい

ということなので、先頭のRは半角でなく全角をご所望のようですが...。
そこは「どうしても」ということでしたら、ご自身で調べてみてください。僕なら、半角のままで仕事が進められるように周囲に働きかけます。
「DPR」で言うところの、「Rの最適化」です。

エクセル仕事を劇的に楽にする「DPRフレームワーク」
https://online.pc5bai.com/Package/index/35


12193 : さざなみさんのコメント (2020-06-14 19:56:30)

質問です。マクロで日付を元号で表示することはできますか?(例)R02.06.15とエクセルに表記したい。


8661 : 小川慶一の回答 (2017-08-10 21:56:43)

受講生 さん:

日付は変数にはできません。
「日付も変数に格納できる」が正しい説明です。

マクロの学習は言語運用の勉強でもあります。
日頃から日本語をきちっと運用しようと心がけることで、マクロの上達も早くなります。

> ・日付は##でくくる。
> ・日付もDimで変数にできる。


8656 : 受講生さんのコメント (2017-08-10 19:53:11)

・日付は##でくくる。
・日付もDimで変数にできる。


7378 : 小川慶一の回答 (2016-12-08 15:34:13)

受講生 さん:

コメントありがとうございます。学習どんどん進めてください。応援しています。

>日付しか入れてなくても時間は表示されるということでしょうか?

「ITセンスがよくなるエクセル講座」で紹介しているとおり、セルの書式の問題です。
http://www.exvba.com/xl.php

書式を自分でいろいろいじってまずは研究してみてください。
それも不明なところがあれば、さらに突っ込んだ質問をしていただければと!


7377 : 受講生さんのコメント (2016-12-07 16:47:19)

日付しか入れてなくても時間は表示されるということでしょうか?


4689 : 小川慶一の回答 (2015-07-15 13:07:58)

受講生 さん:

>日付の計算もできますか?
>たとえば 2015/7/12 17:00 の10時間前は 2015/7/12 7:00になる。
>単純に-10hで値が出ますか?

試すのが一番です。試されましたでしょうか?

動画では扱っていませんが、pdfのテキストでは日付操作の関数を紹介しています。
dateadd関数等です。探してみてください。

>匿名ですみません。
>日付の計算もできますか?
>たとえば 2015/7/12 17:00 の10時間前は 2015/7/12 7:00になる。
>単純に-10hで値が出ますか?
>


4675 : 受講生さんのコメント (2015-07-12 22:14:37)

匿名ですみません。
日付の計算もできますか?
たとえば 2015/7/12 17:00 の10時間前は 2015/7/12 7:00になる。
単純に-10hで値が出ますか?


3日がかりのその仕事、3分で終わらせる方法教えます。ガラパゴスタディーオンライン講座 ユーザー登録

本講座の動画一覧

  1. 【動画1】 基礎講座第1章1 - マクロの入ったファイルを開くときの注意点
    【動画1】 基礎講座第1章1 - マクロの入ったファイルを開くときの注意点 未習得
  2. 【動画2】 基礎講座第1章2 - オブジェクトの指定
    【動画2】 基礎講座第1章2 - オブジェクトの指定 未習得
  3. 【動画3】 基礎講座第1章3 - 色の指定
    【動画3】 基礎講座第1章3 - 色の指定 未習得
  4. 【動画4】 基礎講座第1章4 - コメントの活用
    【動画4】 基礎講座第1章4 - コメントの活用 未習得
  5. 【動画5】 基礎講座第1章5 - 算術演算子
    【動画5】 基礎講座第1章5 - 算術演算子 未習得
  6. 【動画6】 基礎講座第1章6 - 手書きする演習
    【動画6】 基礎講座第1章6 - 手書きする演習 未習得
  7. 【動画7】 基礎講座第1章7 - ワークシート関数との挙動の違い
    【動画7】 基礎講座第1章7 - ワークシート関数との挙動の違い 未習得
  8. 【動画8】 基礎講座第1章8 - 変数を使ったプログラム、変数を使う意義
    【動画8】 基礎講座第1章8 - 変数を使ったプログラム、変数を使う意義 未習得
  9. 【動画9】 基礎講座第1章9 - 変数を活用するときの注意点
    【動画9】 基礎講座第1章9 - 変数を活用するときの注意点 未習得
  10. 【動画10】 基礎講座第1章10 - 自動データヒント機能
    【動画10】 基礎講座第1章10 - 自動データヒント機能 未習得
  11. 【動画11】 基礎講座第1章11 - テストの方法
    【動画11】 基礎講座第1章11 - テストの方法 未習得
  12. 【動画12】 基礎講座第1章12 - ドリル
    【動画12】 基礎講座第1章12 - ドリル 未習得
  13. 【動画13】 基礎講座第2章1 - 第2章の概要
    【動画13】 基礎講座第2章1 - 第2章の概要 未習得
  14. 【動画14】 基礎講座第2章2 - 文字列とは
    【動画14】 基礎講座第2章2 - 文字列とは 未習得
  15. 【動画15】 基礎講座第2章3 - 文字列操作の基本
    【動画15】 基礎講座第2章3 - 文字列操作の基本 未習得
  16. 【動画16】 基礎講座第2章4 - セルの書式と、値の投入
    【動画16】 基礎講座第2章4 - セルの書式と、値の投入 未習得
  17. 【動画17】 基礎講座第2章5 - 文字列の結合
    【動画17】 基礎講座第2章5 - 文字列の結合 未習得
  18. 【動画18】 基礎講座第2章6 - セルやシートの指定に使われる文字列
    【動画18】 基礎講座第2章6 - セルやシートの指定に使われる文字列 未習得
  19. 【動画19】 基礎講座第2章7 - 日付の扱い
    【動画19】 基礎講座第2章7 - 日付の扱い 未習得
  20. 【動画20】 基礎講座第2章8 - ドリル1
    【動画20】 基礎講座第2章8 - ドリル1 未習得
  21. 【動画21】 基礎講座第2章9 - ドリル2
    【動画21】 基礎講座第2章9 - ドリル2 未習得
  22. 【動画22】 基礎講座第2章10 - ドリル3
    【動画22】 基礎講座第2章10 - ドリル3 未習得
  23. 【動画23】 基礎講座第2章11 - ドリル4
    【動画23】 基礎講座第2章11 - ドリル4 未習得
  24. 【動画24】 基礎講座第2章12 - ドリル5
    【動画24】 基礎講座第2章12 - ドリル5 未習得
  25. 【動画25】 基礎講座第3章1 - マクロを書く人のためのキーボード操作
    【動画25】 基礎講座第3章1 - マクロを書く人のためのキーボード操作 未習得
  26. 【動画26】 基礎講座第3章2 - マクロを書く人のためのショートカットキー操作
    【動画26】 基礎講座第3章2 - マクロを書く人のためのショートカットキー操作 未習得
  27. 【動画27】 基礎講座第3章3 - Left関数、Mid関数、Right関数
    【動画27】 基礎講座第3章3 - Left関数、Mid関数、Right関数 未習得
  28. 【動画28】 基礎講座第3章4 - Len関数、Instr関数
    【動画28】 基礎講座第3章4 - Len関数、Instr関数 未習得
  29. 【動画29】 基礎講座第3章5 - 手書きドリル1(関数の練習)
    【動画29】 基礎講座第3章5 - 手書きドリル1(関数の練習) 未習得
  30. 【動画30】 基礎講座第3章6 - 手書きドリル2(関数の練習)
    【動画30】 基礎講座第3章6 - 手書きドリル2(関数の練習) 未習得
  31. 【動画31】 基礎講座第3章7 - 住所情報を分割する(方針を考える)
    【動画31】 基礎講座第3章7 - 住所情報を分割する(方針を考える) 未習得
  32. 【動画32】 基礎講座第3章8 - 住所情報を分割する(方針の説明)
    【動画32】 基礎講座第3章8 - 住所情報を分割する(方針の説明) 未習得
  33. 【動画33】 基礎講座第3章9 - 住所情報を分割する(実習)
    【動画33】 基礎講座第3章9 - 住所情報を分割する(実習) 未習得
  34. 【動画34】 基礎講座第3章10 - プログラミング実習のまとめ
    【動画34】 基礎講座第3章10 - プログラミング実習のまとめ 未習得
  35. 【動画35】 基礎講座第4章1 - 第4章の概要
    【動画35】 基礎講座第4章1 - 第4章の概要 未習得
  36. 【動画36】 基礎講座第4章2 - ハナコのステップ
    【動画36】 基礎講座第4章2 - ハナコのステップ 未習得
  37. 【動画37】 基礎講座第4章3 - 「For Next構文」を覚える
    【動画37】 基礎講座第4章3 - 「For Next構文」を覚える 未習得
  38. 【動画38】 基礎講座第4章4 - 「For Next構文」の実習
    【動画38】 基礎講座第4章4 - 「For Next構文」の実習 未習得
  39. 【動画39】 基礎講座第4章5 - 「ハナコのステップ」のふりかえり
    【動画39】 基礎講座第4章5 - 「ハナコのステップ」のふりかえり 未習得
  40. 【動画40】 基礎講座第4章6 - If文
    【動画40】 基礎講座第4章6 - If文 未習得
  41. 【動画41】 基礎講座第4章7 - 「If文」の実習
    【動画41】 基礎講座第4章7 - 「If文」の実習 未習得
  42. 【動画42】 基礎講座第4章8 - 比較の条件設定バリエーション
    【動画42】 基礎講座第4章8 - 比較の条件設定バリエーション 未習得
  43. 【動画43】 基礎講座第4章9 - If文のその他の構文その1
    【動画43】 基礎講座第4章9 - If文のその他の構文その1 未習得
  44. 【動画44】 基礎講座第4章10 - If文のその他の構文その2
    【動画44】 基礎講座第4章10 - If文のその他の構文その2 未習得
  45. 【動画45】 補講:複数ファイル間でのデータ転記
    【動画45】 補講:複数ファイル間でのデータ転記 未習得

塾長 小川慶一

メニュー

コメント紹介

もっと見る

ページの先頭へ