忍者ブログ

シート表示変更with_PDFフラグ

2022年07月08日
シート管理シート挿入マクロの解説」について、
select処理を使っている関係で、PDF変換の対象に非表示シートが含まれるとエラーになる。

今回はその対策と、シートの表示制御に関する改良についてのお話。


改良についてはめっちゃ簡単。
シート一覧を取得する際に、今まではシートの状態によらずPDFフラグを1にセットしていた。
対象シートが非表示(if sheets.Visible = false then)ならば、PDFフラグを0にセットするだけ。


ん? フラグが表示状態を表すなら、その値を使って表示制御できるじゃん!
ってことで、フラグに合わせてシートの表示状態を変更するマクロを作ってみた。


表示されてるシートを非表示にするのは右クリックで簡単だけど、
非表示シートを再表示するのはめんどくさい。

いちいちフラグをONにしてからマクロ実行もだるいので、
実行時にONにして良いか聞くことにしよう。マクロボタンも追加して完成!

前回のソースをベースに以下のプロシージャを追加した。
以下、ソース。改良したモジュールは こちら


'PDFフラグ列が0のシートを非表示へ
Sub †シート表示変更with_PDFフラグ()
Dim rc As Long: rc = MsgBox("PDFフラグONのシートを表示し、OFFのシートを非表示にします。全シートフラグONにしますか?", vbYesNoCancel)
If rc = vbCancel Then End

Sheets("†").Select
Application.ScreenUpdating = False 'バックグラウンドで処理を始める

Dim eGyo As Long: eGyo = Cells(Rows.Count, 1).End(xlUp).Row
Dim strSHname As String, Gyo As Long
For Gyo = 2 To eGyo
strSHname = Cells(Gyo, "B").value
If rc = vbYes Then Cells(Gyo, "F") = 1
If Cells(Gyo, "F") > 0 Then
Worksheets(strSHname).Visible = True
Else
Worksheets(strSHname).Visible = False
End If
Next Gyo

Application.ScreenUpdating = True 'バックグラウンドで処理を終える
End Sub

PR
Comment
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字