Excel VBA質問箱 IV

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

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


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

【43808】「Worksheet("A")以外のWorksheet」という定義 おじや 06/10/26(木) 10:42 質問[未読]
【43810】Re:「Worksheet("A")以外のWork... Blue 06/10/26(木) 10:50 回答[未読]
【43811】Re:「Worksheet("A")以外のWork... おじや 06/10/26(木) 10:52 お礼[未読]

【43808】「Worksheet("A")以外のWorks...
質問  おじや  - 06/10/26(木) 10:42 -

引用なし
パスワード
   みなさん、質問です。
Worksheetが1〜8まであります。
外部WorkBookからデータを読み込むときに
Worksheet"1"以外のシートはデータを全てクリアする
マクロを入れたいと考えています。
このとき、Dimで「Worksheet"1"以外の全シート」
といったような定義はどう記述したらいいのか教えてください。

今は下記のような無駄な繰り返しの記述になっています。
初心者ゆえ、ご教授よろしくお願いします。


Sub シートのクリア()
  Set WS1 = Worksheets("2")
  Set WS2 = Worksheets("3")
  Set WS3 = Worksheets("4")

  WS1.Select
  Cells.Select
  Selection.ClearContents
  Range("A1").Select

  WS2.Select
  Cells.Select
  Selection.ClearContents
  Range("A1").Select

  WS3.Select
  Cells.Select
  Selection.ClearContents
  Range("A1").Select

  Worksheets("1").Activate

End Sub

【43810】Re:「Worksheet("A")以外のWo...
回答  Blue  - 06/10/26(木) 10:50 -

引用なし
パスワード
   こういうのはFor Eachで対象シート以外かどうかを確認するのが一般的です。

Sub シートのクリア()
  Dim ws As Worksheet

  ' 全てのワークシートを見る
  For Each ws In Worksheets
    ' クリア対象であるか
    If ws.Name <> "1" Then
      ws.Cells.ClearContents
      Application.Goto ws.Range("A1")
    End If
  Next
  Worksheets("1").Activate
End Sub

【43811】Re:「Worksheet("A")以外のWo...
お礼  おじや  - 06/10/26(木) 10:52 -

引用なし
パスワード
   ▼Blue さん

For Eachをつかうんですね!
とても参考になりました。ありがとうございました。

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