Excel VBA質問箱 IV

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

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


2533 / 13646 ツリー ←次へ | 前へ→

【67438】シートを指定して同じ処理を繰り返すには? モルト 10/12/3(金) 14:42 質問[未読]
【67439】Re:シートを指定して同じ処理を繰り返すに... SK63 10/12/3(金) 15:07 回答[未読]
【67440】Re:シートを指定して同じ処理を繰り返すに... モルト 10/12/3(金) 15:25 お礼[未読]

【67438】シートを指定して同じ処理を繰り返すには...
質問  モルト  - 10/12/3(金) 14:42 -

引用なし
パスワード
   毎度お世話になります。

シートを指定して同じ処理を繰り返すのにFor〜Next文でできると
思い試してみたのですが、「Nextに対するforがありません」と
エラーがでてしまいます。
シートの指定をFor〜Next文ではできないのでしょうか?
いつも初歩的な質問ですみませんがお教え願います。


Sub sheetclear()
Dim saikagyo As Integer
Dim page As Integer

saikagyo = 150

For page = 2 To 13

ActiveWorkbook.Worksheets(page).Select   
With ActiveWorkbook.Worksheets(page)
 
  .Range(.Cells(10, 2), .Cells(saikagyo, 16)).ClearContents
  .Cells(5, 14).ClearContents
  .Cells(1, 2).Formula = "=TODAY()"
  .Cells(1, 2).NumberFormatLocal = "yyyy"

  .Cells(11, 11) = "=IF(I11="""","""",ROUNDDOWN(N11/$C$5,0))"
  .Cells(11, 12) = "=IF(I11="""","""",ROUNDDOWN(N11/$C$5,0)*$C$5)"
  .Cells(11, 13) = "=IF(I11="""","""",N11-L11)"
  .Cells(11, 14) = "=IF(I11="""","""",G11+N10-J11)"

  .Range(.Cells(11, 11), .Cells(11, 14)).Select
  Selection.AutoFill Destination:=Range(.Cells(11, 11), .Cells(saikagyo, 14)), Type:=xlFillDefault
  .Range(.Cells(11, 11), .Cells(saikagyo, 14)).Select

Next page
End With

End Sub

【67439】Re:シートを指定して同じ処理を繰り返す...
回答  SK63  - 10/12/3(金) 15:07 -

引用なし
パスワード
   ▼モルト さん:
>毎度お世話になります。

Next page
>End With
ここが逆ですね!

正解
For page = 2 To 13
ActiveWorkbook.Worksheets(page).Select   
With ActiveWorkbook.Worksheets(page)
  *********
End With
Next page


これは、おかしいですね!

For page = 2 To 13

ActiveWorkbook.Worksheets(page).Select   
With ActiveWorkbook.Worksheets(page)
 
Next page
End With


>
>シートを指定して同じ処理を繰り返すのにFor〜Next文でできると
>思い試してみたのですが、「Nextに対するforがありません」と
>エラーがでてしまいます。
>シートの指定をFor〜Next文ではできないのでしょうか?
>いつも初歩的な質問ですみませんがお教え願います。
>
>
>Sub sheetclear()
>Dim saikagyo As Integer
>Dim page As Integer
>
>saikagyo = 150
>
>For page = 2 To 13
>
>ActiveWorkbook.Worksheets(page).Select   
>With ActiveWorkbook.Worksheets(page)
> 
>  .Range(.Cells(10, 2), .Cells(saikagyo, 16)).ClearContents
>  .Cells(5, 14).ClearContents
>  .Cells(1, 2).Formula = "=TODAY()"
>  .Cells(1, 2).NumberFormatLocal = "yyyy"
>
>  .Cells(11, 11) = "=IF(I11="""","""",ROUNDDOWN(N11/$C$5,0))"
>  .Cells(11, 12) = "=IF(I11="""","""",ROUNDDOWN(N11/$C$5,0)*$C$5)"
>  .Cells(11, 13) = "=IF(I11="""","""",N11-L11)"
>  .Cells(11, 14) = "=IF(I11="""","""",G11+N10-J11)"
>
>  .Range(.Cells(11, 11), .Cells(11, 14)).Select
>  Selection.AutoFill Destination:=Range(.Cells(11, 11), .Cells(saikagyo, 14)), Type:=xlFillDefault
>  .Range(.Cells(11, 11), .Cells(saikagyo, 14)).Select
>
>Next page
>End With
>
>End Sub

【67440】Re:シートを指定して同じ処理を繰り返す...
お礼  モルト  - 10/12/3(金) 15:25 -

引用なし
パスワード
   SK63 さんありがとうございます。

質問する前に自分なりにいろいろ調べて
どうしても解らずこちらに質問したのですが
しょうもない間違いですみませんでした。

でも助かりました。
失礼致します。

>正解
>For page = 2 To 13
>ActiveWorkbook.Worksheets(page).Select   
>With ActiveWorkbook.Worksheets(page)
>  *********
>End With
>Next page
>

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