
【この動画で使用する教材ファイル】
・Kiso02_01.xls
・kiso_mm_movie.pdf(P10:講義概要)
※講座内で使用する資料は、この個別ページ内でダウンロードできます。
この講座を含む定額コースに参加するか、この講座を購入することで、講座を利用できるようになります。
定額コースに参加すると、そのコースの利用期間中はいつでも講座を利用できます。
講座を購入すると、いつでも講座を利用できます。
学習記録としてメモを残す
質問や感想を投稿する
投稿時に 記号が \ に変換されてしまいますが、気にせず投稿してください。※投稿に必要な権限がありません。
このページへの投稿/コメント
以下の”Dim”の書き方は何となくはわかるのですが、ちゃんと学習したいので、
どの講座で学習できるのか教えていただきたいです。
すみませんが、よろしくお願いします。
Sub HidukeHensu()
Dim dt
Range("A4").Value = #8/23/2011#
dt = Range("A4").Value
Range("A5").Value = dt
End Sub
こんばんは。
以下の動画が Dim の初登場です。
https://forum.pc5bai.com/lesson/page/104
> 講座で学んだことをキーワード検索ができますでしょうか。
そういう機能は、今はないですね。。
(やり方は思いつくのですが、システム側で対応したうえで、講座の内容のほうでも修正が必要になるので講座リニューアル時の課題にしておきます)
また、基礎編の資料をDownloadしていただければマインドマップがありますので、まずは参照いただければと思います。
まずは用件のみ。
ひきつづき、よろしくお願いいたします。
早速回答いただきありがとうございます。
一度見ていたはずですが、動画の、小人ちゃんが実際の動きを見ていると
理解が深まり、思い出してきました。
動画のように、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://forum.pc5bai.com/lesson/page/104
>
>
> > 講座で学んだことをキーワード検索ができますでしょうか。
>
> そういう機能は、今はないですね。。
> (やり方は思いつくのですが、システム側で対応したうえで、講座の内容のほうでも修正が必要になるので講座リニューアル時の課題にしておきます)
>
> また、基礎編の資料をDownloadしていただければマインドマップがありますので、まずは参照いただければと思います。
>
> まずは用件のみ。
> ひきつづき、よろしくお願いいたします。
>
おはようございます。
> 変数dtに使うA4にまずは日付を入れたあとで、変数dtの定義をしているという理解ですが、大丈夫でしょうか。
> 言葉の表現がおかしかったらすみません。
理解か、言葉の表現か、少なくともどちらかが間違っていまます。
手書きでこびとちゃんワークをやってみて、それから思考を再整理して、また質問していただければと思います。
まずは、先に紹介したページの動画について、いっしょに声を出しつつ紙に書いて。
その次に、このページのマクロについて同様にされると良いでしょう。
それで解決してもしなくてもまた投稿してください。
よろしくお願いします。
ご回答ありがとうございます。
こびとちゃんワーク、改めてやってみます。
またつまづいてしまった際にはよろしくお願いします。
> 受講生 さん:
>
> おはようございます。
>
> > 変数dtに使うA4にまずは日付を入れたあとで、変数dtの定義をしているという理解ですが、大丈夫でしょうか。
> > 言葉の表現がおかしかったらすみません。
>
> 理解か、言葉の表現か、少なくともどちらかが間違っていまます。
>
> 手書きでこびとちゃんワークをやってみて、それから思考を再整理して、また質問していただければと思います。
> まずは、先に紹介したページの動画について、いっしょに声を出しつつ紙に書いて。
> その次に、このページのマクロについて同様にされると良いでしょう。
>
> それで解決してもしなくてもまた投稿してください。
> よろしくお願いします。
>
> こびとちゃんワーク、改めてやってみます。
> またつまづいてしまった際にはよろしくお願いします。
「やってみます」ということは、「まだやってない」ということですね...。
そして、このお返事では、こちらが提示した処方を実践しないままでいるということが明らかになったわけですが、では、果たして、受講生さんは、その代わりに別の努力をしたのか?その結果、疑問は解決したのかしなかったのか?ということは、分かりません。
なので、「努力してないし、(とりあえず後まわしにしただけで)疑問は解決していないのだろう」という前提で、少し詳細に解説します。
まず、各行の意味をコメントにて示します。
以下と理解が異なるようでしたら教えてください。
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
ひきつづき、よい学びを☆
結論から書くと、セルの書式設定を以下のとおりにすると、 #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://forum.pc5bai.com/lesson/page/112
書式設定の活用方法、書式設定が原因で起こりうる問題とその対処法
https://forum.pc5bai.com/lesson/page/29
なお、
> R02.06.15とエクセルに表記したい
ということなので、先頭のRは半角でなく全角をご所望のようですが...。
そこは「どうしても」ということでしたら、ご自身で調べてみてください。僕なら、半角のままで仕事が進められるように周囲に働きかけます。
「DPR」で言うところの、「Rの最適化」です。
エクセル仕事を劇的に楽にする「DPRフレームワーク」
https://forum.pc5bai.com/lesson/course/35
ありがとうございます。さっそくやってみます。先頭の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://forum.pc5bai.com/lesson/page/112
>
> 書式設定の活用方法、書式設定が原因で起こりうる問題とその対処法
> https://forum.pc5bai.com/lesson/page/29
>
>
> なお、
>
> > R02.06.15とエクセルに表記したい
>
> ということなので、先頭のRは半角でなく全角をご所望のようですが...。
> そこは「どうしても」ということでしたら、ご自身で調べてみてください。僕なら、半角のままで仕事が進められるように周囲に働きかけます。
> 「DPR」で言うところの、「Rの最適化」です。
>
> エクセル仕事を劇的に楽にする「DPRフレームワーク」
> https://forum.pc5bai.com/lesson/course/35
>
・日付もDimで変数にできる。
日付は変数にはできません。
「日付も変数に格納できる」が正しい説明です。
マクロの学習は言語運用の勉強でもあります。
日頃から日本語をきちっと運用しようと心がけることで、マクロの上達も早くなります。
> ・日付は##でくくる。
> ・日付もDimで変数にできる。
コメントありがとうございます。学習どんどん進めてください。応援しています。
>日付しか入れてなくても時間は表示されるということでしょうか?
「ITセンスがよくなるエクセル講座」で紹介しているとおり、セルの書式の問題です。
http://www.exvba.com/xl.php
書式を自分でいろいろいじってまずは研究してみてください。
それも不明なところがあれば、さらに突っ込んだ質問をしていただければと!
日付の計算もできますか?
たとえば 2015/7/12 17:00 の10時間前は 2015/7/12 7:00になる。
単純に-10hで値が出ますか?
>日付の計算もできますか?
>たとえば 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で値が出ますか?
>