Aviso aos navegantes


Prezados leitores deste blog (incluindo sites relacionados) e membros do fórum.

Tem algum tempo que os sites tem passado por algumas instabilidades, que vão desde perda de arquivos, até falha no envio de mensagens e email, recuperação de senha, entre outros. Para tentar resolver o problema, migramos nossa hospedagem para um novo provedor. Como nem tudo na internet é instantâneo, vai levar algum tempo até que tudo entre nos eixos.

Por conta destes problemas, o funcionamento dos sites estará instável por algum tempo, que prevemos ser menos de uma semana, já que os servidores da internet precisam se atualizar quanto a mudança do provedor.

Pedimos desculpas a todos pelo inconveniente e aproveitamos para agradecer pela confiança e fidelidade em nosso conteúdo.

Abraços a todos

Tomás

VBA – Trazendo a Janela do Excel a frente das outras

Em mais uma das solicitações de nosso fórum, veio a necessidade de fazer com que a janela do Microsoft Excel ganhasse foco quando uma macro fosse executada.

Normalmente, isso é feito quando a rotina que dá o foco roda sob um determinado evento externo, como o tempo, já que é um dos únicos casos em que a aplicação VBA não estará em uso e precisará ganhar o foco. Para tal necessidade, o pessoal da Ozgrid (sempre eles) disponibilizou uma macro que realiza o procedimento. Ela faz o uso de API, como já deveria ser esperado por uma função não nativa do Excel.

Option Explicit 
 
 'Windows API Declarations, variables
Declare Function alias_ShowWindow Lib "User32" Alias "ShowWindow" _ 
(ByVal hWnd As Integer, ByVal nCmdShow As Integer) As Integer 
 
Declare Function alias_FindWindow Lib "User32" Alias "FindWindowA" _ 
(ByVal lpclassname As String, ByVal lpCaption As Any) As Integer 
 
Declare Function alias_SetActiveWindow Lib "User32" Alias "SetActiveWindow" _ 
(ByVal hWnd As Integer) As Integer 
 
 'Window handler function
Function AppActivateClass(lpclassname$) 
 
    Dim hWnd As Integer 'the application's window handle
    Dim dummy As Integer 'Dummy variable
 
     'Get the Window Handle
    hWnd = alias_FindWindow(lpclassname$, 0&) 
 
     'Activate the Application
    dummy = alias_SetActiveWindow(hWnd) 
     'First close the window
    dummy = alias_ShowWindow(hWnd, 2) 
     'Then activate the window
    dummy = alias_ShowWindow(hWnd, 9) 
     'Return True if Application Running, or False if not.
    AppActivateClass = hWnd 
 
End Function 
 
 'Code to activate the function above
Sub ActivateXLS() 
 
    x = AppActivateClass("XLMain") 
 
End Sub

O código é exatamente como o original, mas gera um erro. Ao chamar a função ActivateXLS, o sistema dá como variável não declarada, já que o Option Explicit está ativado na primeira linha. Basta excluir a linha ou retirar o “x = ” antes da chamada. Voilá!

Referência

http://www.ozgrid.com/forum/showthread.php?t=45148&page=1