Excel VBA質問箱 IV

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

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


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

【53362】複数シートの選択について カンジ 08/1/6(日) 10:13 発言[未読]
【53363】Re:複数シートの選択について ichinose 08/1/6(日) 10:27 発言[未読]
【53366】Re:複数シートの選択について カンジ 08/1/6(日) 11:58 発言[未読]
【53364】Re:複数シートの選択について かみちゃん 08/1/6(日) 10:29 発言[未読]
【53365】Re:複数シートの選択について カンジ 08/1/6(日) 11:52 発言[未読]
【53367】Re:複数シートの選択について かみちゃん 08/1/6(日) 12:06 発言[未読]
【53369】Re:複数シートの選択について カンジ 08/1/6(日) 12:30 お礼[未読]

【53362】複数シートの選択について
発言  カンジ E-MAIL  - 08/1/6(日) 10:13 -

引用なし
パスワード
   複数シートの選択について教えてください
シート数が毎回変化する時に対応できるマクロを組みたいのですが
最後のシートを選択する指示が分かりません
複数シート選択は

Sheets(Array(Sheet3,Sheet4)).Select

で出来ますが
Sheet3から最後のシート(シート数は変化する)までを全て選択する
場合はどうすればいいか教えていただきたいのですが。よろしくお願いします

【53363】Re:複数シートの選択について
発言  ichinose  - 08/1/6(日) 10:27 -

引用なし
パスワード
   ▼カンジ さん:
おはようございます。

>複数シートの選択について教えてください
>シート数が毎回変化する時に対応できるマクロを組みたいのですが
>最後のシートを選択する指示が分かりません
>複数シート選択は
>
>Sheets(Array(Sheet3,Sheet4)).Select
これ↑

Sheets(Array("Sheet3","Sheet4")).Select

こうですよね!!


>
>で出来ますが
>Sheet3から最後のシート(シート数は変化する)までを全て選択する
>場合はどうすればいいか教えていただきたいのですが。よろしくお願いします

Sub sample()
  Dim sht As Object
  Set sht = Sheets("sheet3")
  Do
    sht.Select False
    Set sht = sht.Next
    Loop Until sht Is Nothing
End Sub

では?

【53364】Re:複数シートの選択について
発言  かみちゃん  - 08/1/6(日) 10:29 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>Sheet3から最後のシート(シート数は変化する)までを全て選択する

Sheet3をアクティブシートとするならば、以下のような感じでできます。

Sub Sample()
 Dim ws As Worksheet
 Dim i As Integer
 
 Set ws = Nothing
 For i = ActiveSheet.Index To Sheets.Count
  If ws Is Nothing Then
   Sheets(i).Select
  Else
   Sheets(i).Select False
  End If
  Set ws = Sheets(i)
 Next
End Sub

Sheet3がアクティブシートでないならば、
ActiveSheet.Index
の部分を
Sheets("Sheet3").Index
とします。

以下のURLも参考にしてみてください。
http://www.moug.net/tech/exvba/0040042.htm
http://www.moug.net/tech/exvba/0040032.htm

【53365】Re:複数シートの選択について
発言  カンジ E-MAIL  - 08/1/6(日) 11:52 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>Sheet3から最後のシート(シート数は変化する)までを全て選択する
>
>Sheet3をアクティブシートとするならば、以下のような感じでできます。
>
>Sub Sample()
> Dim ws As Worksheet
> Dim i As Integer
> 
> Set ws = Nothing
> For i = ActiveSheet.Index To Sheets.Count
>  If ws Is Nothing Then
>   Sheets(i).Select
>  Else
>   Sheets(i).Select False
>  End If
>  Set ws = Sheets(i)
> Next
>End Sub
>
>Sheet3がアクティブシートでないならば、
>ActiveSheet.Index
>の部分を
>Sheets("Sheet3").Index
>とします。
>
>以下のURLも参考にしてみてください。
>http://www.moug.net/tech/exvba/0040042.htm
>http://www.moug.net/tech/exvba/0040032.htm

かみちゃんさん ありがとうございました
早速実行してみました。うまく行きましたが、さらに、
最初のSheetをSheet名指定ではなく、左から3番目のSheetから
最後のシートまで選択することも工夫してみましたが自分の力では
うまく行きませんでした。

ActiveSheet.Index
のところを色々変えてみましたが(Sheets.Count3など)駄目でした。
現在作成中のものは左から2つのシートは固定で、3つめから毎回
変動するので、このシートを印刷や削除の対象にしたいために選択する
というものです。
よろしくお願いします

【53366】Re:複数シートの選択について
発言  カンジ E-MAIL  - 08/1/6(日) 11:58 -

引用なし
パスワード
   ▼ichinose さん:
>▼カンジ さん:
>おはようございます。
>
>>複数シートの選択について教えてください
>>シート数が毎回変化する時に対応できるマクロを組みたいのですが
>>最後のシートを選択する指示が分かりません
>>複数シート選択は
>>
>>Sheets(Array(Sheet3,Sheet4)).Select
>これ↑
>
>Sheets(Array("Sheet3","Sheet4")).Select
>
>こうですよね!!
>
>
>>
>>で出来ますが
>>Sheet3から最後のシート(シート数は変化する)までを全て選択する
>>場合はどうすればいいか教えていただきたいのですが。よろしくお願いします
>
>Sub sample()
>  Dim sht As Object
>  Set sht = Sheets("sheet3")
>  Do
>    sht.Select False
>    Set sht = sht.Next
>    Loop Until sht Is Nothing
>End Sub
>
>では?

ichinoseさん ありがとうございます。
("sheet3")の""を忘れておりました。

実行しましたら出来ました。ありがとうございます。
さらに、シート名指定から、左から3番目のシートから最後のシートまでの
選択に挑戦しましたが自分の力では出来ませんでした。
シート名ではなく、左から3番目から最後のシートまで、の選択についても
教えていただければありがたいのですが。よろしくお願いいたします。

【53367】Re:複数シートの選択について
発言  かみちゃん  - 08/1/6(日) 12:06 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>最初のSheetをSheet名指定ではなく、左から3番目のSheetから
>最後のシートまで選択することも工夫してみましたが自分の力では
>うまく行きませんでした。
>
>ActiveSheet.Index
>のところを色々変えてみましたが(Sheets.Count3など)駄目でした。
>現在作成中のものは左から2つのシートは固定で、3つめから毎回
>変動するので、このシートを印刷や削除の対象にしたいために選択する
>というものです。

上記のコードで
MsgBox ActiveSheet.Index
For i = ActiveSheet.Index To Sheets.Count
として、
ActiveSheet.Index
が何かを確認してみてください。

そうすると、
For i = 3 To Sheets.Count
または、
For i = Sheets(3).Index To Sheets.Count
としてみればいいことがわかるかと思います。

なお、投稿時の、引用は、必要最小限のものでいいです。
スレッド全体を見ればわかることですので。

【53369】Re:複数シートの選択について
お礼  カンジ E-MAIL  - 08/1/6(日) 12:30 -

引用なし
パスワード
   かみちゃんさん 
基本的なことも含めご指導いただきありがとうございました。
実行してみました。全てOKです。
ありがとうございました。

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