1~40までのシート全てのB7:B36の範囲に空白があれば非表示にするというマクロを作ろうとしています。
Sheets(Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", _
"16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", _
"39", "40")).Select Replace:=False
Dim rw As Integer
Application.ScreenUpdating = False
For rw = 7 To 36
If Range("B" & rw) = "" Then
Rows(rw).EntireRow.Hidden = True
End If
Next
Application.ScreenUpdating = True
というマクロだと、1のシートしか適用しませんでした。1~40のすべてにこのマクロを適用させるにはどうすればいいのでしょうか。教えて下さい。
No.5ベストアンサー
- 回答日時:
Dim rw, i As Integer
Application.ScreenUpdating = False
For i = 1 To 40
Sheets("" & i).Select
For rw = 7 To 36
If Range("B" & rw) = "" Then
Rows(rw).EntireRow.Hidden = True
End If
Next
Next
Application.ScreenUpdating = True
といった意味でした。
No.3
- 回答日時:
Sub test01()
Dim sh
For Each sh In Worksheets
MsgBox sh.Name
'処理
Next
End Sub
これを標準モジュールに入れて、全シート(名)が捉えられることを
まず納得する。その後処理の部分に1シート分の処理を入れる。
且つ今選ばれているシートに特定するために、セルを扱っている部分(Range()や Cells()など)には、Sh. を先頭に添える。
処理しないシートが1つ2つの例外なら、シート名が除外分かどうか
IF分で聞いて、処理を飛ばせばよい。
ーー
繰り返しを(For rw = 7 To 36以下)
をやっているようだが、CountやCountAやCountBlank関数(WorksheetFunction)ガ使えないか考えてみたらどうですか。
>全てのB7:B36の範囲に空白があれば
B7:B36の範囲がすべて空白であれば
B7:B36の範囲に1つでも空白があれば
B7:B36の範囲で当該行B列セルが空白であれば
3通りに取れないこともないとおもう。はっきり書くこと。
No.1
- 回答日時:
Sheets(Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", _
"16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", _
"39", "40")).Select Replace:=False
でシート選択されるのではなく、
For i = 1 To 3
Sheets(i).Select
:
:
next
で処理されればいかがでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) シート削除のマクロで「deleteメソッドは失敗しました」となります。助けてください! Sub 不要 6 2022/09/08 16:41
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) Excelでnullになるような式のセルをマクロで空白行と認識させるにはどうすればいいですか? 3 2023/03/13 13:42
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロを複数シートに実行する...
-
コマンドボタンがデザインモー...
-
エクセルを開いたとき常に同じ...
-
EXCELでワークシートを開いたら...
-
【 Excel】シートの見出しに自...
-
エクセルで回数をカウントする...
-
エクセルでシートの並び替えで...
-
VBA シート名を先月の名前に...
-
VBAで作るexcel検索窓
-
エクセルシート内での閲覧制限
-
VBAで条件によってシート見出し...
-
EXCELのエラー
-
エクセルの複数のワークシート...
-
マクロを特定の複数シートで実...
-
エクセルで串刺ししたシートの...
-
エクセル2010 マクロを実行す...
-
ExcelのSheetに作られたMacro1...
-
全てのシートから特定文字を含...
-
Excel:複数シートから条件に合...
-
シートを保護した時でも並べ替...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
マクロを複数シートに実行する...
-
【 Excel】シートの見出しに自...
-
EXCELでワークシートを開いたら...
-
エクセルを開いたとき常に同じ...
-
VBAで条件によってシート見出し...
-
EXCELでマクロを使わずに図形の...
-
マクロを特定の複数シートで実...
-
エクセルでシートの並び替えで...
-
エクセルの複数のワークシート...
-
複数シートの保護・解除
-
エクセルで複数のSheetを一括フ...
-
エクセルで回数をカウントする...
-
EXCELのエラー
-
Excel:複数シートから条件に合...
-
VBA シート名を先月の名前に...
-
EXCELの起動時に常に同じ...
-
Excelで,特定のシートを開いた...
-
Excelのマクロの呼び出し元を知...
-
メッセージボックスでシート名...
おすすめ情報