エクセルマクロ オンライン講座コメント紹介

コメント紹介
   └ 伝票作成マクロ・カレンダー作成マクロ解説
       └ 1枚のシートに1年分または所定の月の分だけのカレンダーを作成する

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

[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されていました。

こちらなぜでしょうか?

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

宜しくお願い致します。


冨岡

 


[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されていました。
>
>こちらなぜでしょうか?
>
>お手すきの際で結構ですので、ご回答いただけますと幸いです。
>
>宜しくお願い致します。
>
>

 


まずはここから!スマホでも学べる無料動画講座

今なら先着30名限定で無料!定価4,800円の、初心者のためのエクセルマクロ動画講座。
  1. Excel 97~Excel 2016まですべて対応。動画本数20本、総再生時間2時間44分53秒
  2. PC, Mac, iPhone, iPad, Androidのお好みの環境で、いつでも好きなときに学べます。
2004年から10年間述べ3,000名以上に実施した研修の経験と実績を集約した講座です。
いますぐ無料で試してください。

トップへ