いつもお世話になります。
OSは、Win11,エクセルは、Office365 です。
下記の参考のコードですが同じパターンの繰り返しです。
短縮してまとめる方法をご指導をいただけませんか。
※この参考のコードは使用できるのですが今後の
知識向上のためによろしくお願いします。
参考
Sub 行閉じる()
Application.Left = 34.75
Application.Top = 17.5
Rows("4:10").Select
Selection.EntireRow.Hidden = True
Rows("12:18").Select
Selection.EntireRow.Hidden = True
Rows("20:26").Select
Selection.EntireRow.Hidden = True
Rows("28:34").Select
Selection.EntireRow.Hidden = True
Rows("36:42").Select
Selection.EntireRow.Hidden = True
Rows("44:50").Select
Selection.EntireRow.Hidden = True
Rows("52:58").Select
Selection.EntireRow.Hidden = True
Rows("60:66").Select
Selection.EntireRow.Hidden = True
Rows("68:74").Select
Selection.EntireRow.Hidden = True
Rows("76:81").Select
Selection.EntireRow.Hidden = True
Range("A2").Select
End Sub
No.1
- 回答日時:
こんにちは
規則的なのでループで回して処理すれば・・・
と思ったのですが、最後だけ規則から外れているようですね。
例外処理をするくらいなら、ベタで、こんなんではいかがでしょうか?
Const scope = "4:10,12:18,20:26,28:34,36:42,44:50,52:58,60:66,68:74,76:81"
Range(scope).EntireRow.Hidden = False
No.2
- 回答日時:
こんにちは
> ※この参考のコードは使用できるのですが今後の知識向上のためによろしくお願いします。
(初期の私が行った独学方法です)
自動記録マクロで作成する場合、出来るだけ同じ操作をまとめるようにすると記録も纏まります(仕様と制限の為、限界があります)
他にも作成テクニックとしてショートカットキーなどを使って記録をしてみましょう(記録によって作成されたメソッドやプロパティなどを調べると理解が深まり、参考コードなどをWebで見る時に役立ちます)
Rows("4:10").Select 以下の記録はCtrlキーを押しながら選択し非表示にする
例 20:26 まで自動記録
Range("4:10,12:18,20:26").Select
Range("A20").Activate
Selection.EntireRow.Hidden = True
これを更にまとめると 下記のようになります
Range("4:10,12:18,20:26").EntireRow.Hidden = True
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Excel(エクセル) vbaで列幅について 1 2022/11/15 08:31
- Visual Basic(VBA) worksheets & rows メソッドは失敗しました。のエラー回避のやり方 1 2022/06/07 13:58
- Visual Basic(VBA) マクロを短くする 1 2023/01/15 00:11
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) リストビューに条件による表示 1 2022/06/01 20:19
- Visual Basic(VBA) いつもお世話になります 下記のコード実行すると エラーになります わかるかた教えてくれませんでしょう 6 2022/12/17 15:01
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングについて。 1つ...
-
画面を強制的に再描画させる方法
-
DoEventsが必要な理由について
-
pythonでファイルのコメント行...
-
DOSコマンドのループ内のTIMEコ...
-
For文を使った九九表の作成
-
VBAで3秒だけ時間を止めたい
-
vbscriptでIE自動入力(途中で...
-
ループ内での条件処理
-
CSVファイルの特定の行だけを読...
-
GIFアニメをループさせたくない
-
VBA横データを縦にしたいです
-
vb.netからエクセル関数書き込み
-
エクセル関数で1〜12の数字がル...
-
vb.netです。2次元配列の要素を...
-
VBA for文が止まらない
-
アセンブラによるウェイト(WAIT...
-
UWSCの終了の仕方
-
テキストボックスの名前に変数...
-
アクティブセルから、A列最終行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
VBAで3秒だけ時間を止めたい
-
VBAでの一時停止と再開の方法
-
どなたかこのプログラミングを...
-
Escキーを押すと、中断する時と...
-
UWSCの終了の仕方
-
エクセルの当番表を作っていま...
-
VBA for i=1 to lastrow
-
「偶数・奇数の和」のフローチ...
-
アクティブセルから、A列最終行...
-
DoEventsが必要な理由について
-
vb.netからエクセル関数書き込み
-
GIFアニメをループさせたくない
-
DOSコマンドのループ内のTIMEコ...
-
範囲指定したセルを1つずつ飛...
-
流れ図(フローチャート)が分か...
-
乱数の桁数指定、または範囲指定。
-
テキストボックスの名前に変数...
-
CSVファイルの特定の行だけを読...
-
vb.netです。2次元配列の要素を...
おすすめ情報
ご指導をありがとうございます。
色々試させていただきました。
上手くゆきません。
例えば、
このコードでは無反応でした。
Sub 行閉じる1()
Application.Left = 34.75
Application.Top = 17.5
Const scope = ("4:10,12:18,20:26,28:34,36:42,44:50,52:58,60:66,68:74,76:81")
Range(scope).EntireRow.Hidden = False
Range("A2").Select
End Sub
ご指導を参考に下記のようしたら上手くできました。
Sub 行閉じる()
Application.Left = 34.75
Application.Top = 17.5
Range("4:10,12:18,20:26,28:34,36:42,44:50,52:58,60:66,68:74,76:81").EntireRow.Hidden = True
Range("A2").Select
End Sub