| 
    
     |  | ▼かず さん: 
 おはようございます
 
 M列に日付があるシートと、G列にいれて印刷知るシートが同じシートか別のシートか
 不明ですけど、コードでは、同じシートとしておられますので、その前提で。
 
 まず、日付は M6 から始まっていますね。
 M1〜M5 が、どうなっているのかわかりませんけど、アップされたコードでは(これが正しいとして)
 For cnt =1 to 31 ですから cnt は 1 から始まりますね。
 で、If Cells(cnt,13).Value="" Then Exit For がありますから、とえば M1〜M5に空白があれば
 そこで処理が終わってしまいますね。
 逆に、M1〜M5に空白ではないものがあれば、その値が G3 にセットされて印刷されてしまいますね。
 それと、日付の最後は M36 ですよね。 1 To 31 ですと、M32〜M36に日付があっても無視されますね。
 
 次に「スマホ」でアップされたということですから「本当のコードは」
 For cnt =6 to 36 Step 1 になっているとします。
 
 このコードの不具合の「元凶」は 「Exit For」 です。
 空白のものがあれば、そこで、処理が終わってしまいます。
 1月のデータで実行されたようですから、最初が1月1日。祝日ですから空白でしょうね。
 なので、最初で Exit For 。処理が終わってしまいます。
 
 If Cells(cnt, 13).Value <> "" Then
 Range("G3") = Cells(cnt, 13)
 ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
 End If
 
 このようにすればよろしいですね。
 
 |  |