Excel VBA質問箱 IV

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

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


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

【58965】左端にあるシート以外のシート選択 TOKU 08/11/20(木) 17:39 質問[未読]
【58966】Re:左端にあるシート以外のシート選択 ponpon 08/11/20(木) 18:11 発言[未読]
【58983】Re:左端にあるシート以外のシート選択 TOKU 08/11/21(金) 11:30 質問[未読]
【58986】Re:左端にあるシート以外のシート選択 ponpon 08/11/21(金) 11:57 発言[未読]
【58967】Re:左端にあるシート以外のシート選択 りん 08/11/20(木) 18:44 回答[未読]
【58985】Re:左端にあるシート以外のシート選択 TOKU 08/11/21(金) 11:44 お礼[未読]

【58965】左端にあるシート以外のシート選択
質問  TOKU  - 08/11/20(木) 17:39 -

引用なし
パスワード
   こんにちは。
VBA初心者です。

複数のシートから、左端にあるシート以外の
全てのシートを選択したいのです。

シートはしばしば増減するので、
シート名を入れずに選択する方法を探しています。

どなたか、ご指南を!

【58966】Re:左端にあるシート以外のシート選択
発言  ponpon  - 08/11/20(木) 18:11 -

引用なし
パスワード
   ▼TOKU さん:
>こんにちは。
>VBA初心者です。
>
>複数のシートから、左端にあるシート以外の
>全てのシートを選択したいのです。
>
>シートはしばしば増減するので、
>シート名を入れずに選択する方法を探しています。
>

選択してから、何をするのでしょうか?
それによっては・・・

【58967】Re:左端にあるシート以外のシート選択
回答  りん E-MAIL  - 08/11/20(木) 18:44 -

引用なし
パスワード
   TOKU さん、こんばんわ。
>複数のシートから、左端にあるシート以外の
>全てのシートを選択したいのです。

ひとつずつ追加する方法もありますが、今回は配列にシート名を取得してまとめて選択します。

Sub test()
  Dim ws As Worksheet
  With Application.ActiveWorkbook
   'とりあえずシートの数だけ。
   ReDim sht(1 To .Worksheets.Count) As String
   '左端や非表示でないかをチェック
   For Each ws In .Worksheets
     If ws.Index > 1 And ws.Visible = True Then
      NN = NN + 1: sht(NN) = ws.Name 'シート名を配列に取得
     End If
   Next
   '配列を成型
   ReDim Preserve sht(1 To NN) As String
   'セレクト
   .Worksheets(sht()).Select
   '
  End With
  Erase sht
End Sub

こんな感じです。

【58983】Re:左端にあるシート以外のシート選択
質問  TOKU  - 08/11/21(金) 11:30 -

引用なし
パスワード
   ▼ponpon さん:
>▼TOKU さん:
>>こんにちは。
>>VBA初心者です。
>>
>>複数のシートから、左端にあるシート以外の
>>全てのシートを選択したいのです。
>>
>>シートはしばしば増減するので、
>>シート名を入れずに選択する方法を探しています。
>>
>
>選択してから、何をするのでしょうか?
>それによっては・・・

すみません。
左端以外の各シートは同じフォーマットで、
各工程別の当月、日々の出勤欠勤人数が入っています。
それを月締めに日付を翌月に更新し、
出勤欠勤人数データをクリアしたいのです。

【58985】Re:左端にあるシート以外のシート選択
お礼  TOKU  - 08/11/21(金) 11:44 -

引用なし
パスワード
   ▼りん さん:
>TOKU さん、こんばんわ。
>>複数のシートから、左端にあるシート以外の
>>全てのシートを選択したいのです。
>
>ひとつずつ追加する方法もありますが、今回は配列にシート名を取得してまとめて選択します。
>
>Sub test()
>  Dim ws As Worksheet
>  With Application.ActiveWorkbook
>   'とりあえずシートの数だけ。
>   ReDim sht(1 To .Worksheets.Count) As String
>   '左端や非表示でないかをチェック
>   For Each ws In .Worksheets
>     If ws.Index > 1 And ws.Visible = True Then
>      NN = NN + 1: sht(NN) = ws.Name 'シート名を配列に取得
>     End If
>   Next
>   '配列を成型
>   ReDim Preserve sht(1 To NN) As String
>   'セレクト
>   .Worksheets(sht()).Select
>   '
>  End With
>  Erase sht
>End Sub
>
>こんな感じです。

りんさん、こんにちは。
助かりました!
この様に記述するのですね。
勉強になります。ありがとうございます!

【58986】Re:左端にあるシート以外のシート選択
発言  ponpon  - 08/11/21(金) 11:57 -

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


>左端以外の各シートは同じフォーマットで、
>各工程別の当月、日々の出勤欠勤人数が入っています。
>それを月締めに日付を翌月に更新し、
>出勤欠勤人数データをクリアしたいのです。

解決済みですが・・・・

各シートの同じ範囲をクリアするのなら、
for nextで2枚目から終わりまで回して
クリアしてもいいかな?

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