Excel VBA質問箱 IV

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

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


9217 / 13644 ツリー ←次へ | 前へ→

【28666】シートの移動 VBA初心者 05/9/12(月) 15:58 質問[未読]
【28669】Re:シートの移動 MOON 05/9/12(月) 16:38 回答[未読]
【28675】Re:シートの移動 VBA初心者 05/9/12(月) 17:35 お礼[未読]

【28666】シートの移動
質問  VBA初心者 E-MAIL  - 05/9/12(月) 15:58 -

引用なし
パスワード
   以下のマクロを実行して、
隣のシートに移動し、繰り返し同じ作業をして、
シート末尾にきたらマクロを終了させたいのですが。。
どう記述したらよいのでしょうか?


Sub シート加工()
  Columns("D:D").Select
  Selection.Delete Shift:=xlToLeft
  Range("E1").Select
  ActiveCell.FormulaR1C1 = "分"
  Range("D1").Select
  ActiveCell.FormulaR1C1 = "勝"
  Columns("C:C").Select
  Selection.Cut
  Range("J1").Select
  ActiveSheet.Paste
  Columns("I:I").Select
  Selection.Delete Shift:=xlToLeft
  Range("H1").Select
  ActiveCell.FormulaR1C1 = "失"
  Range("G1").Select
  ActiveCell.FormulaR1C1 = "得"
  Range("F1").Select
  ActiveCell.FormulaR1C1 = "敗"
  Range("C2").Select
  ActiveCell.FormulaR1C1 = "=ASC(RC[-1])"
  Range("C2:C21").Select
  Selection.FillDown
  Selection.Copy
  Range("B2").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Columns("C:C").Select
  Application.CutCopyMode = False
  Selection.Delete Shift:=xlToLeft
  Range("I2").Select
  ActiveCell.FormulaR1C1 = "<>"
  Range("I2").Select
  ActiveCell.FormulaR1C1 = "<br><br>"
  Range("I2:I21").Select
  Selection.FillDown

End Sub

【28669】Re:シートの移動
回答  MOON  - 05/9/12(月) 16:38 -

引用なし
パスワード
   ▼VBA初心者 さん:
こんにちは。
すべてのシートをループしながら処理を繰り替えすには、
以下のようにします。

Dim ws As Worksheet
For Each ws In Worksheets
ws.Select
・・・・・・
この間に処理
・・・・・・
Next

また、現在選択されているシートから、最後のシートまでを
対象にするなら以下のような感じでしょうか。

Do
・・・・・・
この間に処理
・・・・・・
If ActiveSheet.Name = Worksheets(Worksheets.Count).Name Then Exit Do
ActiveSheet.Next.Select
Loop

どちらもVBA初心者さんのコードを間にはさめば実行できると思います。

【28675】Re:シートの移動
お礼  VBA初心者 E-MAIL  - 05/9/12(月) 17:35 -

引用なし
パスワード
   できました(゚∀゚)ノシ
ありがとうございます!

▼MOON さん:
>▼VBA初心者 さん:
>こんにちは。
>すべてのシートをループしながら処理を繰り替えすには、
>以下のようにします。
>
>Dim ws As Worksheet
>For Each ws In Worksheets
>ws.Select
>・・・・・・
>この間に処理
>・・・・・・
>Next
>
>また、現在選択されているシートから、最後のシートまでを
>対象にするなら以下のような感じでしょうか。
>
>Do
>・・・・・・
>この間に処理
>・・・・・・
>If ActiveSheet.Name = Worksheets(Worksheets.Count).Name Then Exit Do
>ActiveSheet.Next.Select
>Loop
>
>どちらもVBA初心者さんのコードを間にはさめば実行できると思います。

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