Liittyy jälleen näihin käyttöoikeuksien rajoittamiseen. Eli kuinka estän VBA koodilla excelin tietyn työkirjan (application.thisworkbook....) tulostamisen?
Nyt tuo on tehty käyttäen beforeprint -komentoa ja siinäkin tehty väkisin sulkeminen, ennen kuin tulostaminen käynnistyy (koska komennon suorittamisen jälkeen tulostus tulisi joka tapauksessa). Ei siis mikään järkevä, vaan radikaali.
Tällaisen löysin, mutta se disablee vain Uusi -komennon Tiedosto -valikosta. Miten vastaavalla menetelmällä saa tuon Print -komennon disablettua?
Sub ToggleMenuControls()
Dim m As CommandBarControl, mi As CommandBarControl
Set m = CommandBars.FindControl(ID:=30002) ' File Menu
If m Is Nothing Then Exit Sub
For Each mi In m.Controls
If mi.ID = 18 Then mi.Enabled = False
' toggles the state for the Print menu
Next mi
Set mi = Nothing
Set m = Nothing
End SubTärkeintä osaa taitaa näytellä tuo "mi.ID", kokeile vaikka ihan raa'alla voimalla siihen arvoja :-)
... ja siinä kävi huonosti!!
Mutta löysin tällaisen option, joka piti syöttää Worksheet_activeen eikä sitä voinut ainakaan samalla tavalla laittaa Workbook_openiin:
CommandBars("Worksheet Menu Bar").Controls.Item(1).Controls.Item(11).Enabled = False
CommandBars("Worksheet Menu Bar").Controls.Item(1).Controls.Item(10).Enabled = False
CommandBars("Worksheet Menu Bar").Controls.Item(1).Controls.Item(9).Enabled = False
CommandBars("Worksheet Menu Bar").Controls.Item(1).Controls.Item(12).Enabled = False
CommandBars("Worksheet Menu Bar").Controls.Item(3).Controls.Item(3).Enabled = False
Application.CommandBars("Standard").Controls.Item(5).Enabled = False
Application.CommandBars("Standard").Controls.Item(6).Enabled = FalseMiten vastaavaa voisi käyttää suoraan Workbook_openissa? Samalla tavalla kirjoitettuna siellä tulee error #91.
Aihe on jo aika vanha, joten et voi enää vastata siihen.