[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『カレンダーの空白欄に誕生者の名前を記載する』(マクロ G g)
横書きのカレンダーの空き欄に、生年月日が一致した方の名前を記載すべくマクロを作成しましたが、「実行時エラー 型が一致しません」となり上手く動きません。「For Each」の使い方に問題があると思うのですが“どう使えばいいのか”わかりません。「For Each 〜 For Each 〜」とFor Eachを2回使う使い方或いは別の使い方があればその方法をご指導願います。
Sub 誕生者記載()
Dim myr As Range Dim cl As Range
For Each myr In Worksheets("誕生日").Range("A2:A9") '("A2:A9")は2021/1/型年月日
For Each cl In Range("B3").Resize(12, 7) If Month(cl) Like Month(myr) And Day(cl) Like Day(myr) Then cl.Offset(1).Value = myr.Offset(, 1).Value 'Offset(, 1)は名前 cl.Offset(1).Font.Color = RGB(255, 0, 0) End If
Next Next
End Sub
< 使用 Excel:Excel2016、使用 OS:Windows10 >
For Each cl In Range("B3").Resize(12, 7)
cl.Offset(1).Value = myr.Offset(, 1).Value 'Offset(, 1)は名前
ならば、条件を満たしたときに名前を書き込むのですから、↓になったときに困りませんか?
Month("名前")
(もこな2 ) 2021/09/01(水) 11:37
例えばB3セルが条件を満たしたら、B4セルに【名前】が書き込まれますよね?
※cl.Offset(1)なのですから 書き込まれる対象のセルはB3セルの1行下になります。
そして、ループが進んでいくと「cl」は↓のようになっていきますよね。
B3,C3,D3,E3,F3,G3,【B4】,C4.....
しかし、B4セルには上記の処理で【名前】が書き込まれてますよね?
Month関数で月を取り出そうとしても【(日付型のデータじゃないから)型があわない】となりませんか?
すなわち、名前が書き込まれるセルと日付が書いてあるセルは別になってないと変じゃないですか?
カレンダーと仰ってますし、7列なので1週間ごとに行が変わるのは想像できるんですが、 12行の正体がよくわかりません、 (4行ごとに1セットとかじゃないかと想像しますが、レイアウトの説明が無いのでよくわかりません)
(もこな2 ) 2021/09/01(水) 20:42
(マクロ G g) 2021/09/01(水) 22:17
こんばんは ^^ 回答ではありませんが。。。何かの足しにでも。。。( ̄▽ ̄) 新規の空シート[選択して^^;]でお試しを Option Explicit Sub stp2() Dim r As Range Dim i As Long Dim j As Long Set r = Range("B3").Resize(12, 7) For i = 1 To r.Rows.Count Step 2 For j = 1 To 7 If r(i, j) = Empty Then r(i, j).Offset(1) = "A" End If Next Next End Sub (隠居Z) 2021/09/01(水) 22:40
奇数行だけ処理させればいいんじゃないですか?
まぁ、ちょっと冗長ですけど、トラブルは回避できますよ。
Sub 誕生者記載() Dim myr As Range Dim cl As Range For Each myr In Worksheets("誕生日").Range("A2:A9") '("A2:A9")は2021/1/型年月日
For Each cl In Range("B3").Resize(12, 7) If Application.IsOdd(cl.Row) Then '奇数行だけ処理
If Month(cl) Like Month(myr) And Day(cl) Like Day(myr) Then cl.Offset(1).Value = myr.Offset(, 1).Value 'Offset(, 1)は名前 cl.Offset(1).Font.Color = RGB(255, 0, 0) Exit For End If End If Next Next End Sub
(半平太) 2021/09/01(水) 22:43
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.