パソコン仕事5倍塾
35,000人を指導した東大卒・元日本IBM社内講師が直伝
MENU
Takao Kanekoさんの投稿
(投稿ID: 4378) 添付ファイルのダウンロード権限がありません
小川慶一さんのコメント
(コメントID: 6014)
Sub Test_ogawa() Dim d As Date d = Range("A2").Value Debug.Print Weekday(d) Debug.Print WeekdayName(Weekday(d)) End Sub
Takao Kanekoさんのコメント
(コメントID: 6018)
(コメントID: 6026)
(コメントID: 6043)
(コメントID: 6048)
たった1ヶ月で人生が劇的に変わりました
佐藤信さん
役員クラスの方から高い評価を受けるようになりました。
佐賀県 - 岩本徹さん
今までまったく知らなかったショートカットキーを使いまくっています。
東京都 - 鷹觜慶さん
年齢60才間近、営業で外回りの時間が多い私でも退社時間が1-2時間程度早くなりました。
東京都 - 宗内隆明さん
受講前もすでにパソコン得意でしたが、そんな私でも受講して本当に良かったと思えた講座です。
東京都 - 佐伯とも子さん
ここまで包括的に仕事に役立つ深い学びを受けれた講座は初めてでした
東京都 - 飯田倫子さん
2024年05月05日 07:10
2024年05月01日 14:04
2024年04月30日 17:13
2024年04月27日 15:36
2024年04月25日 07:00
2024年05月05日 09:45
2024年05月01日 18:39
2024年05月01日 18:17
2024年05月01日 17:47
2024年05月01日 15:18
2022年02月24日 10:59
2019年12月23日 05:57
2019年09月20日 12:29
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
2022年02月02日 00:00
2022年02月02日 03:00
2022年02月02日 06:00
2022年02月02日 09:00
2022年02月02日 12:00
2024年02月15日 18:30
2024年02月09日 17:05
2024年01月19日 13:00
2023年12月31日 17:00
2023年12月21日 14:00
2024年05月05日 09:40
2024年05月03日 11:20
2024年05月02日 10:38
2024年05月02日 05:00
2024年05月01日 18:30
Takao Kanekoさんの投稿
(投稿ID: 4378) 添付ファイルのダウンロード権限がありません
Module18の下記の課題について質問があります。
[3]で見つけてきた曜日の背景色を調べてくる
[4]で調べた色で、[1]で取得したセル全体を塗りつぶす
土曜日に青色、日曜日に赤色となるはずが、
日曜日に青色、月曜日に赤色と一つズレた実行結果になります。
自分が書いていたマクロに問題があるのかと思いましたが、新しくダウンロードした回答も同じになりました。
実行した年度は、2009年と2019年です。
さらに、「なんでだろう?」と自分で簡単なテストしました。
2019年1月1日(火)なので、Weekday関数の引数は3となるのですが、
なぜかWeekdayname関数だと、水曜日となります。
今朝から、この解けきれない問題のループにハマってしまってます。
どうかお教え頂けますでしょうか?
よろしくお願いします。
Takao
小川慶一さんのコメント
(コメントID: 6014)
なるほど。興味深い現象ですね。
以下のプログラムを実行してください。どのような出力結果になるでしょうか。
↓僕の環境では以下です。
3
火曜日
エクセルのバージョン(リージョン、地域)に依存するかもしれません。
引数 firstdayofweek を明示する必要があるかもしれませんね。
とりいそぎ。
もう少し調べてみます。まずは、 firstdayofweek を指定して結果をより安定制御できるか?試してみてください。
参考: MSDN
https://docs.microsoft.com/ja-jp/previous-versions/windows/scripting/cc392348(v=msdn.10)
> 小川先生、
> Module18の下記の課題について質問があります。
> [3]で見つけてきた曜日の背景色を調べてくる
> [4]で調べた色で、[1]で取得したセル全体を塗りつぶす
> 土曜日に青色、日曜日に赤色となるはずが、
> 日曜日に青色、月曜日に赤色と一つズレた実行結果になります。
>
> 自分が書いていたマクロに問題があるのかと思いましたが、新しくダウンロードした回答も同じになりました。
> 実行した年度は、2009年と2019年です。
> さらに、「なんでだろう?」と自分で簡単なテストしました。
> 2019年1月1日(火)なので、Weekday関数の引数は3となるのですが、
> なぜかWeekdayname関数だと、水曜日となります。
> 今朝から、この解けきれない問題のループにハマってしまってます。
> どうかお教え頂けますでしょうか?
> よろしくお願いします。
>
> Takao
Takao Kanekoさんのコメント
(コメントID: 6018)
私の環境では以下になりました。
Range("A1")に何もいれない場合。
7
Sunday
Range("A1")に1/01/2019と入れた場合。
3
Wednesday
> まずは、 firstdayofweek を指定して結果をより安定制御できるか?試してみてください。
調べながら、求める結果になるか試してみます。
取り急ぎ失礼します。
小川慶一さんのコメント
(コメントID: 6026)
やはり、weekday関数の第2引数で明示的に firstdayofweek を指定するのが良さそうですね。
デフォルトでは、
[Ctrl] + [R] → intl.cpl → [Enter] で表示される「地域」ダイアログ「形式」タブの、「週の最初の曜日」の設定に依存するようです。
なので、こちらの設定を変えるのも、ありと言えばありです。
【参考】
「weekday関数」の上にカーソルを置いて [F1] を押すとMSDNにある以下のヘルプが表示されます。
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/weekday-function?f1url=https%3A%2F%2Fmsdn.microsoft.com%2Fquery%2Fdev11.query%3FappId%3DDev11IDEF1%26l%3Dja-JP%26k%3Dk(vblr6.chm1009058)%3Bk(TargetFrameworkMoniker-Office.Version%3Dv16)%26rd%3Dtrue%26f%3D255%26MSPPError%3D-2147217396
> 小川先生、
>
> 私の環境では以下になりました。
> Range("A1")に何もいれない場合。
> 7
> Sunday
>
> Range("A1")に1/01/2019と入れた場合。
> 3
> Wednesday
>
> > まずは、 firstdayofweek を指定して結果をより安定制御できるか?試してみてください。
> 調べながら、求める結果になるか試してみます。
>
> 取り急ぎ失礼します。
Takao Kanekoさんのコメント
(コメントID: 6043)
firstdayofweek 引数の設定を1にしたところ、土曜日は青く、日曜日は赤く色を付けることが出来ました。
[Ctrl] + [R]で動かなかったので、 [Win] + [R]で試しました ^-^
firstdayofweekのところが、月曜日になってましたので、日曜日に設定しました。
こちらも、動作確認し意図通りに動きました。
私のパソコンだけデフォルトでは、設定は月曜日なのでしょうか。不思議ですね。
Weekday関数を使うたびに、firstdayofweekを指定しなければならないので、ココの設定を日曜日にしておきました。
問題が解決して、スッキリしました。先生、ありがとうございました。
小川慶一さんのコメント
(コメントID: 6048)
> [Ctrl] + [R]で動かなかったので、 [Win] + [R]で試しました ^-^
あ、すいません。
間違えました。
> 私のパソコンだけデフォルトでは、設定は月曜日なのでしょうか。不思議ですね。
どういう事情でそうなったのか?は、僕も断定はできません。
ともあれ、スッキリされたようでよかったです。
こういう調査をすると、スキルがグッと高まりますね (^^
> 小川先生
>
> firstdayofweek 引数の設定を1にしたところ、土曜日は青く、日曜日は赤く色を付けることが出来ました。
>
> [Ctrl] + [R]で動かなかったので、 [Win] + [R]で試しました ^-^
> firstdayofweekのところが、月曜日になってましたので、日曜日に設定しました。
> こちらも、動作確認し意図通りに動きました。
>
> 私のパソコンだけデフォルトでは、設定は月曜日なのでしょうか。不思議ですね。
>
> Weekday関数を使うたびに、firstdayofweekを指定しなければならないので、ココの設定を日曜日にしておきました。
>
> 問題が解決して、スッキリしました。先生、ありがとうございました。