[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『空白行を一つのボタンで非表示、再表示させる方法』(広徳)
漠然とした質問なんですが、教えてもらえると助かります。
イメージとして、1行目から30行目の空白の行をボタン一つで非表示にして、もう一度押すと再表示できないでしょうか?非表示用、再表示用それぞれのボタンではなく、一つでやりたいです。
何方か教えてください。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
(マナ) 2017/08/18(金) 20:54
横から失礼します。
マナさんの質問の回答にもよりますが、True/Falseの切替えは↓のように一つこコードで切り替えられます。
○ = Not ○ (カリーニン) 2017/08/18(金) 21:08
こんばんわ。
ちょっと発言これだけになると思うので中途半端で申し訳ありませんが、
>非表示用、再表示用それぞれのボタンではなく、一つでやりたいです。 これは2つのボタンでなら記述出来ると言う事ですか? ならそのコードを掲示されてはどうでしょうか。 その方が回答者も何処を修正すれば良いかアドバイスしやすいです。
(sy) 2017/08/18(金) 21:34
ちょっと意味がわかりません。
その後に続く省略された文章は何でしょうか?
(マナ) 2017/08/18(金) 21:46
空白セルは ジャンプ→空白セル で指定できます。
指定の仕方はマクロの自動記録が参考になると思います。 (カリーニン) 2017/08/18(金) 21:53
では、その列でフィルターで1のみ抽出するだけでは?
表示のときは「すべて選択」にチェックすればよいです。
ボタンなしでできませんか。
(マナ) 2017/08/18(金) 22:17
if A1:A31の可視セルの数が30個以下ならば 再表示を実行 else 非表示を実行 end if
(マナ) 2017/08/19(土) 09:00
横から失礼します。
>再表示と非表示の実行には、実際にはどんなマクロが入るでしょうか?
マクロの自動記録で取れませんか? ネット検索でも幾らでもヒットすると思いますが。 (カリーニン) 2017/08/19(土) 16:24
Option Explicit
Sub test() Dim rr As Range Dim r As Range
Set rr = Rows("1:30")
With rr.Resize(, rr.Rows.Count + 1) If .Columns(1).SpecialCells(xlCellTypeVisible).Count < .Rows.Count Then .Hidden = False Else For Each r In rr If WorksheetFunction.CountA(r) = 0 Then r.Hidden = True Next End If End With
End Sub
(マナ) 2017/08/19(土) 17:06
>With rr.Resize(, rr.Rows.Count + 1) ↓ With rr.Resize(rr.Rows.Count + 1)
(マナ ) 2017/08/19(土) 17:15
マナさんからの質問
Q 空白の行というのは、特定の行で固定ですか、それとも増減するのですか
A 特定の行ですが、固定ではありません。例えばですが、1行目から30行目の中で、0が表示された行を非表示にしたいです。
syさんからの質問
Q これは2つのボタンでなら記述出来ると言う事ですか?
ならそのコードを掲示されてはどうでしょうか。 その方が回答者も何処を修正すれば良いかアドバイスしやすいです。 A あくまで1つのボタンで切り替えしたいです。自分なりのコードを作成しないままの質問となってしまいまし た。すみません。
マナさん、具体的な様式を今までかかって作成しておりました。回答や返事をきちんとせず、申し訳ありません。実際には、BF列の54行目から73行目に0または1の数字が入る形としました。どのような修正が必要になるでしょうか。また、ボタンで表示、非表示を切り替える際に、シートの保護を外す作業まで行うとすれば、どのような修正が必要でしょうか。
質問ばかり、申し訳ありません。よろしくお願いします。遅くに申し訳ありません。
(広徳) 2017/08/20(日) 02:56
Option Explicit
Dim 次は再表示 As Boolean
Sub test2() Dim r As Range Dim c As Range
ActiveSheet.Unprotect
Set r = Range("BF54:BF73")
If 次は再表示 Then r.EntireRow.Hidden = False 次は再表示 = False Else For Each c In r If c.Value = 0 Then c.EntireRow.Hidden = True Next 次は再表示 = True End If
ActiveSheet.Protect
End Sub
(マナ ) 2017/08/20(日) 09:48
(広徳) 2017/08/20(日) 22:54
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.