Nessa postagem vou demonstrar como travar a sua janela Excel utilizando VBA, para isso copie o código abaixo em um modulo e execute a rotina myLockon para travar a janela ou a rotina myLockoff para destravar.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Option Explicit
'Declarando variaveis publicas
Dim dblAppT As Double
Dim dblAppL As Double
Dim dblAppH As Double
Dim dblAppW As Double
Dim dblAppS As Double
Dim fApp As Boolean
'Habilitando trava na janela
Sub myLockon()
mySizeLock True
EndSub
'Desabilitando a trava na janela
Sub myLockoff()
mySizeLock False
End Sub
'Rotina que argumento verdadeiro ou falso para trava da janela
'Rotina responsavel pela alteração nas dimensões da janela
'conforme status verdadeiro ou falso da variavel fAPP
Sub dblAppSizeLock()
DoWhilefApp=True
DoEvents
With Application
If.WindowState<>dblAppS Then.WindowState=dblAppS
IfdblAppS=xlNormal Then
IfdblAppT<>.Top Then.Top=dblAppT
IfdblAppL<>.Left Then.Left=dblAppL
IfdblAppH<>.Height Then.Height=dblAppH
IfdblAppW<>.Width Then.Width=dblAppW
EndIf
EndWith
Loop
EndSub
O código é na verdade uma GAMBIARRA que funciona, mas tem suas desvantagem. A ideia é capturar as dimensões e localização da janela ao se travar e disparar códigos em tempo de execução pré programados para voltar a janela a todo momento, mesmo parecendo que não esta travando sua planilha por conta do DoEvents, o codigo esta sendo disparado em loop e isso trava algumas funcionalidades.
https://datasphere.ru/club/user/120/blog/6608/