1枚のシートに1年分または所定の月の分だけのカレンダーを作成する

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

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

解説

カレンダー作成演習

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

9560 : 小川慶一の回答 (2018-03-09 13:55:24)

受講生 さん:

v(^_^*

> 動画を見て、日付に関する関数を復習しました。
>
> ・Weekday関数は、指定された日付が何曜日かを数値として返す。
> ・Weekdayname関数は、指定された数値を曜日に変換した文字列を返す。
> (Weekdayname関数は、Weekday関数を組み合わせて使うことがほとんどである。)
>
> また、発展編1のテキストを見て、monthname関数の存在を知りました。
> 色々な関数を試してマスターしたいと思います。


9555 : 受講生さんのコメント (2018-03-08 22:08:45)

動画を見て、日付に関する関数を復習しました。

・Weekday関数は、指定された日付が何曜日かを数値として返す。
・Weekdayname関数は、指定された数値を曜日に変換した文字列を返す。
(Weekdayname関数は、Weekday関数を組み合わせて使うことがほとんどである。)

また、発展編1のテキストを見て、monthname関数の存在を知りました。
色々な関数を試してマスターしたいと思います。


7749 : 小川慶一の回答 (2017-02-27 16:01:32)

ゲスト さん:

>下記は、自分で書いたものですが、小川先生の書いたものと変わりありません。

そうでもないです。
第一感怪しいのは、サブプロシージャの名称が hidden となっていくことです。
以下で使われているプロパティ名と一致していますね。

Rows(c).hidden = True


こういうのはトラブルの元です。

基礎編でお話した、ネーミングルールについて復習してください。
https://online.pc5bai.com/movie/index/25/105

そこを直したら、同じプログラムをもう一度実行してみてください。
あとは僕も分かりません。

自分でも知らないタイミングで、A列のはるか下方のセルに何か書いてしまっていたりしませんか。

あとは、 Range("A" & Rows.Count).End(xlUp).Row の値がどうなるか?確認してみること。
マクロ実行中、ループ内の処理をしているタイミングで .Row のところにカーソルを当てるとこの式の戻り値を調べられます。そうしたら、そのセルを訪問してみてください。何か分かるかも。

あるいは、訪問するのが面倒であれば、以下などをループ内で実行してみる。

Debug.Print Range("A" & Range("A" & Rows.Count).End(xlUp).Row).Value
Debug.Print Len(Range("A" & Range("A" & Rows.Count).End(xlUp).Row).Value)




>小川先生、こんにちは。
>下記の質問内容がありましたので、お手すきの際にご確認頂けますと幸いです。
>【質問内容】
>マクロを実行すると、エンドレスになってしまうのですが(→正確には、最終行のセルまで行くまで続く)、なぜでしょうか?
>下記詳細です。
>
>
>発展へ動画の「カレンダーマクロのための部品解説01」で、
>1年間の日付を入力したあと(A2~A366まで2015年の1月から12月までの日付が入っています。)、
>特定の月しか表記しないという課題マクロをつくりました。
>
>下記は、自分で書いたものですが、小川先生の書いたものと変わりありません。
>===========================================
>Sub hidden()
> Dim c As Long
> For c = 2 To Range("A" & Rows.Count).End(xlUp).Row
> If Month(Range("A" & c)) < 5 Then
> Rows(c).hidden = True
> End If
> Next
>End Sub
>=============================================
>こちらが、1年分のカレンダーを作成したことを前提で実行したのですが、
>366行を過ぎても、実行されており、どんどんそれ以下の行もhiddenされていました。
>
>こちらなぜでしょうか?
>
>お手すきの際で結構ですので、ご回答いただけますと幸いです。
>
>宜しくお願い致します。
>
>


7746 : 冨岡 顕治さんのコメント (2017-02-27 15:27:59)

小川先生、こんにちは。
下記の質問内容がありましたので、お手すきの際にご確認頂けますと幸いです。
【質問内容】
マクロを実行すると、エンドレスになってしまうのですが(→正確には、最終行のセルまで行くまで続く)、なぜでしょうか?
下記詳細です。


発展へ動画の「カレンダーマクロのための部品解説01」で、
1年間の日付を入力したあと(A2~A366まで2015年の1月から12月までの日付が入っています。)、
特定の月しか表記しないという課題マクロをつくりました。

下記は、自分で書いたものですが、小川先生の書いたものと変わりありません。
===========================================
Sub hidden()
Dim c As Long
For c = 2 To Range(""A"" & Rows.Count).End(xlUp).Row
If Month(Range(""A"" & c)) < 5 Then
Rows(c).hidden = True
End If
Next
End Sub
=============================================
こちらが、1年分のカレンダーを作成したことを前提で実行したのですが、
366行を過ぎても、実行されており、どんどんそれ以下の行もhiddenされていました。

こちらなぜでしょうか?

お手すきの際で結構ですので、ご回答いただけますと幸いです。

宜しくお願い致します。


冨岡


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

本講座の動画一覧

  1. 【動画1】 1枚のシートに1年分または所定の月の分だけのカレンダーを作成する
    【動画1】 1枚のシートに1年分または所定の月の分だけのカレンダーを作成する 未習得
  2. 【動画2】 12ヶ月分のシートを作りそれぞれに日付、曜日等を設定し、土日には色をつける
    【動画2】 12ヶ月分のシートを作りそれぞれに日付、曜日等を設定し、土日には色をつける 未習得
  3. 【動画3】 1枚のシート内で12ヶ月を横に並べたカレンダーを作成する
    【動画3】 1枚のシート内で12ヶ月を横に並べたカレンダーを作成する 未習得

塾長 小川慶一

メニュー

コメント紹介

もっと見る

ページの先頭へ