Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1993 / 76734 ←次へ | 前へ→

【80385】Re:カレンダーに予定を自動入力したい
質問  VBA初心者  - 19/2/7(木) 11:40 -

引用なし
パスワード
   ▼γ さん:
>カレンダには日付データが、日を表示するだけの形式でセットされているとの前提です。
>straightforwardに、こんなコードではどうでしょうか。
>
>Sub カレンダー入力2()
>  Dim ws     As Worksheet
>  Dim lastRow   As Long  
>  Dim rngCalendar As Range  
>  Dim rngFound  As Range 
>  Dim d      As Long
>  Dim s      As String
>  Dim k      As Long
>
>  Set ws = Worksheets("Sheet1")
>  lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
>  Set rngCalendar = ws.Range("E1:K10")
>
>  For k = 1 To lastRow
>    d = ws.Cells(k, "A").Value '日付け
>    s = ws.Cells(k, "B").Value 'スケジュール
>    Set rngFound = rngCalendar.find(Day(d), After:=rngCalendar(1), _
>      LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
>      MatchCase:=False, MatchByte:=False, SearchFormat:=False)
>    
>    '日でマッチさせると、たかだか2回マッチするだけなのでDo Loopは不要?
>    If d = rngFound.Value Then
>      Call setSchedule(rngFound.Offset(1, 0), s)
>    Else
>      Set rngFound = rngCalendar.FindNext(rngFound)
>      If Not rngFound Is Nothing Then
>        If d = rngFound.Value Then
>          Call setSchedule(rngFound.Offset(1, 0), s)
>        End If
>      End If
>    End If
>  Next
>End Sub
>Function setSchedule(r As Range, s As String)
>  If r.Value = "" Then
>    r.Value = s
>  Else
>    r.Value = r.Value & vbLf & s
>  End If
>End Function

γ様

いつもお世話になっております。
γ様のvbaを参考に自分で作成してみたのですが

If d = rngFound.Value Then
      Call setSchedule(rngFound.Offset(1, 0), s)
    Else
      Set rngFound = rngCalendar.FindNext(rngFound)
      If Not rngFound Is Nothing Then
        If d = rngFound.Value Then
          Call setSchedule(rngFound.Offset(1, 0), s)

↑の部分がうまくいきません。
原因として考えられるのは、検索した結果(rngFound)がdと一つも当てはまらなかった場合の処理が入っていないということかなと思うのですが、その場合どうすればいいでしょうか?

自分としてはIf Not rngFound Is Nothing Thenを使えばいいと思い、何度か組んでみたのですがすべてエラーになってしまうので、教えていただきたいです。

6 hits

【80354】カレンダーに予定を自動入力したい VBA初心者 19/1/31(木) 12:44 質問[未読]
【80356】Re:カレンダーに予定を自動入力したい γ 19/1/31(木) 20:34 発言[未読]
【80361】Re:カレンダーに予定を自動入力したい VBA初心者 19/2/1(金) 9:33 お礼[未読]
【80364】Re:カレンダーに予定を自動入力したい γ 19/2/1(金) 11:59 発言[未読]
【80369】Re:カレンダーに予定を自動入力したい γ 19/2/2(土) 13:30 発言[未読]
【80375】Re:カレンダーに予定を自動入力したい VBA初心者 19/2/5(火) 9:10 お礼[未読]
【80385】Re:カレンダーに予定を自動入力したい VBA初心者 19/2/7(木) 11:40 質問[未読]
【80397】Re:カレンダーに予定を自動入力したい マナ 19/2/10(日) 9:04 発言[未読]
【80418】Re:カレンダーに予定を自動入力したい VBA初心者 19/2/12(火) 9:28 回答[未読]
【80420】Re:カレンダーに予定を自動入力したい マナ 19/2/12(火) 19:30 発言[未読]
【80423】Re:カレンダーに予定を自動入力したい VBA初心者 19/2/13(水) 14:12 回答[未読]
【80424】Re:カレンダーに予定を自動入力したい マナ 19/2/13(水) 18:56 発言[未読]
【80428】Re:カレンダーに予定を自動入力したい VBA初心者 19/2/14(木) 10:46 回答[未読]
【80431】Re:カレンダーに予定を自動入力したい マナ 19/2/14(木) 19:16 発言[未読]
【80487】Re:カレンダーに予定を自動入力したい VBA初心者 19/2/18(月) 14:09 回答[未読]
【80493】Re:カレンダーに予定を自動入力したい マナ 19/2/18(月) 17:46 発言[未読]
【80357】Re:カレンダーに予定を自動入力したい マナ 19/1/31(木) 20:59 発言[未読]
【80360】Re:カレンダーに予定を自動入力したい マナ 19/1/31(木) 22:47 発言[未読]
【80363】Re:カレンダーに予定を自動入力したい VBA初心者 19/2/1(金) 11:48 質問[未読]
【80366】Re:カレンダーに予定を自動入力したい マナ 19/2/1(金) 22:00 発言[未読]
【80376】Re:カレンダーに予定を自動入力したい VBA初心者 19/2/5(火) 9:23 お礼[未読]
【80380】Re:カレンダーに予定を自動入力したい マナ 19/2/5(火) 19:47 発言[未読]
【80362】Re:カレンダーに予定を自動入力したい VBA初心者 19/2/1(金) 10:05 お礼[未読]

1993 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free