|
ThisWorkbook に 変数記録用のシートを追加してください。
下記コードの例では、 "config" という名前のシートを追加したものとします。
普段は非表示(xlSheetVeryHidden)にしておいても構いません。
先に提示したコードを下記と入れ替えてください。
Private Sub barSet()
Dim i As Long
Dim c As Long
Dim v(1 To 256)
With Application
.CommandBars("Worksheet Menu Bar").Enabled = False
For i = 2 To .CommandBars.Count
With .CommandBars(i)
If .Visible Then
.Visible = False
c = c + 1
v(c) = i
End If
End With
Next
.DisplayFormulaBar = False
.DisplayStatusBar = False
End With
Me.Sheets("config").Rows(1).Value = v
End Sub
'---------------------------------------------------------------------
Private Sub barReset()
Dim v, vi
With Me.Sheets("config")
v = .Range(.Cells(1), .Cells(256).End(xlToLeft).Offset(, 1)).Value
End With
ReDim Preserve v(1 To 1, 1 To UBound(v, 2) - 1)
With Application
.CommandBars("Worksheet Menu Bar").Enabled = True
If Not IsEmpty(v(1, 1)) Then
For Each vi In v
.CommandBars(CLng(vi)).Visible = True
Next
End If
.DisplayFormulaBar = True
.DisplayStatusBar = True
End With
End Sub
barSetする時にCommandBarsをLoopして表示されていれば非表示にします。
と同時に"config"シートの1行目に、表示CommandBarのIndexを記録します。
barReset時にその記録を読み込んで表示します。
こんな感じで表示状態に応じて対応すれば良いと思います。
|
|