Excel VBA 質問スレッド №1941 (解決済)
シート指定方法
投稿者 : たなか 投稿日時 : 2024/06/24(Mon) 15:43:49 OS : Windows 10 EXCEL : Excel 2019
上記でアクティブシートに
セルに0があればクリアしています
ただ、アクティブシートではなく、シートを下記のように指定したいです
左側から3番目のシートを起点(左側から1、2番目のシートを除外)にして、残りのシートも対象にして0にしたいのですが、
シートの指定方法についてご教示頂けないでしょうか
Sub SheetZeroClear1() Dim r As Range Dim sht As Worksheet Set sht = ActiveSheet '// 入力されたセル範囲をループ For Each r In sht.UsedRange If r.Value = "0" Then r.Value = "" End If Next End Sub
上記でアクティブシートに
セルに0があればクリアしています
ただ、アクティブシートではなく、シートを下記のように指定したいです
左側から3番目のシートを起点(左側から1、2番目のシートを除外)にして、残りのシートも対象にして0にしたいのですが、
シートの指定方法についてご教示頂けないでしょうか
スポンサーリンク
[返信 1] Re : シート指定方法
投稿者 : さんこう 投稿日時 : 2024/06/24(Mon) 16:34:55
>シートの指定方法についてご教示頂けないでしょうか
参考になれば。
>シートの指定方法についてご教示頂けないでしょうか
参考になれば。
Sub Test() Dim sht As Worksheet For i = 3 To Worksheets.Count Set sht = Worksheets(i) Debug.Print sht.Name Next End Sub
[返信 2] Re : シート指定方法
投稿者 : ピロリ 投稿日時 : 2024/06/24(Mon) 19:19:19
シートをループして処理する訳ですが、[返信 1] さんこうさん とは別のループの仕方で・・・
とりあえず、3つ案を記述します。
(1) ご質問にあったように、左から 1番目、2番目のシートを除外して、それ以外のシートを処理するなら、
下のようなコードでも。 ただし、順番を入れ換えられてしまったら意図した結果にならないです。
(2) シート名で除外も可能。 ただし、シート名を変更されてしまったら意図した結果にならないです。
(3) シートのオブジェクト名で除外することも可能。 ・・・ 個人的はよく使用します。
ご参考まで。
シートをループして処理する訳ですが、[返信 1] さんこうさん とは別のループの仕方で・・・
とりあえず、3つ案を記述します。
(1) ご質問にあったように、左から 1番目、2番目のシートを除外して、それ以外のシートを処理するなら、
下のようなコードでも。 ただし、順番を入れ換えられてしまったら意図した結果にならないです。
(2) シート名で除外も可能。 ただし、シート名を変更されてしまったら意図した結果にならないです。
(3) シートのオブジェクト名で除外することも可能。 ・・・ 個人的はよく使用します。
ご参考まで。
Sub Sample() Dim r As Range Dim sht As Worksheet For Each sht In Worksheets Debug.Print "左から " & sht.Index & " 番目" & vbTab & sht.Name & vbTab & sht.CodeName If sht.Index <> 1 And sht.Index <> 2 Then '(1)左から 1番目, 2番目のシートは除外 'If sht.Name <> "シート1" And sht.Name <> "シート2" Then '(2)シート名 「シート1」「シート2」は除外 'If sht.CodeName <> "obj1" And sht.CodeName <> "obj2" Then '(3)オブジェクト名 「obj1」「obj2」は除外 For Each r In sht.UsedRange If r.Value = "0" Then r.Value = "" End If Next r End If Next sht End Sub
[返信 3] Re : シート指定方法
投稿者 : てらてら 投稿日時 : 2024/06/24(Mon) 20:09:10
こんにちは。
実験してみましたがブック内のシートを並び替えた場合でも、
左から Worksheets(1)、 Worksheets(2)、、、という並びになるようです。
さんこうさん のやり方を真似しますと、以下のようになるかと思います。
こんにちは。
実験してみましたがブック内のシートを並び替えた場合でも、
左から Worksheets(1)、 Worksheets(2)、、、という並びになるようです。
さんこうさん のやり方を真似しますと、以下のようになるかと思います。
Sub SheetZeroClear1(sht As Worksheet) Dim r As Range '// 入力されたセル範囲をループ For Each r In sht.UsedRange If r.Value = "0" Then r.Value = "" End If Next End Sub Sub main() Dim i As Long For i = 3 To Worksheets.Count Call SheetZeroClear1(Worksheets(i)) Next i End Sub
[返信 4] Re : シート指定方法
投稿者 : たなか 投稿日時 : 2024/06/24(Mon) 20:23:11
回答ありがとうございます
どの方も丁寧でわかりやすく非常に
タメになりました
また、よろしくお願いします
回答ありがとうございます
どの方も丁寧でわかりやすく非常に
タメになりました
また、よろしくお願いします
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2025-07-02 21:21:21 )