edraw-max-horizontal
Guía De Usuario
¿Qué hay de nuevo?
PRUÉBALO GRATIS
COMPRAR AHORA

Usando API de Windows para hoja de cálculo en VBA

> Edraw: How-tos > Usando API de Windows para hoja de cálculo en VBA
Publicado por Edraw | 2023-10-21 15:23:10
Cómo usar la función de solicitud en API Windows para programación de Excel en VBA, enlistando algunos APIs Windows comúnmente usados y explicando cómo puedes ponerlas a trabajar.

Cuando desarrollas aplicaciones para Office o Excel en particular, podemos hacer la mayoría de cosas usando un modelo de objeto de Office / Excel. Aunque ocasionalmente, necesitamos funciones que VBA no proporciona. En esos casos, tenemos que usar la función de solicitudes que están disponibles en Windows.

En el módulo de código en el formulario de usuario, pega las declaraciones de la función API en la parte superior del módulo, fuera de o antes de cualquier procedimiento Sub o Function o Property.

Obtén el nombre de usuario Windows

Si necesitas saber quién está conectado en una base de datos, usa GetUserName Este API es muy sencillo, ¿por qué te molestarías en escribir tu propio código? GetUserName recupera el nombre del sistema o usuario actual que está conectado a una red.

Private Declare Function GetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Function apicGetUserName() As String
'Llamar a apiGetUserName devuelve el usuario actual.
Dim lngResponse As Long
Dim strUserName As String * 32
lngResponse = GetUserName(strUserName, 32)
apicGetUserName = Left(strUserName, InStr(strUserName, Chr$(0)) - 1)
End Function

BringWindowToTop

Esta función API trae una ventana en específico al frente. Si la ventana es una de nivel superior, la función lo activa.

Private Declare Function BringWindowToTop Lib "user32" _
(ByVal lngHWnd As Long) As Long

Cuando solicites la función, pasa el valor del identificador de la ventana a una variable larga.

FindWindow

Puede ser un poco frustrante porque requiere información especializada, y si no lo haces correctamente, la función no resultará. Específicamente, necesitas la clase o nombre de la ventana, como se muestra en la solicitud simple debajo.

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Hacer enfoque a la hoja de cálculo

Private Declare Function BringWindowToTop Lib "user32" _
(ByVal lngHWnd As Long) As Long

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (_
ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, _
ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (_
ByVal HWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long
Private Const WM_SETFOCUS = &H7
Private Sub SetSheetFocus()
Dim HWND_XLDesk As Long
Dim HWND_XLApp As Long
Dim HWND_XLSheet As Long
HWND_XLApp = Application.HWnd
HWND_XLDesk = FindWindowEx(HWND_XLApp, 0&, "XLDESK", vbNullString)
HWND_XLSheet = FindWindowEx(HWND_XLDesk, 0&, "EXCEL7", ActiveWindow.Caption)
SendMessage HWND_XLSheet, WM_SETFOCUS, 0&, 0&
End Sub

Private Sub SetAppFocus()
Dim HWND_XLDesk As Long
Dim HWND_XLApp As Long
HWND_XLApp = Application.HWnd
SendMessage HWND_XLApp, WM_SETFOCUS, 0&, 0&
End Sub

Function apicFindWindow(strClassName As String, strWindowName As String)
'Obtener identificador de ventana.
Dim lngWnd As Long
lngWnd = FindWindow(strClassName, strWindowName)
End Function

GetComputerName

GetComputerName, es similar a GetUserName excepto que recupera el nombre de sistema.

Private Declare Function GetComputerName Lib "kernel32" Alias _
"GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Function apicGetComputerName() As String
'Llamar a apiGetUserName devuelve el usuario actual.
Dim lngResponse As Long
Dim strUserName As String * 32
lngResponse = GetComputerName(strUserName, 32)
apicGetComputerName = Left(strUserName, InStr(strUserName, Chr$(0)) - 1)
End Function

Incrusta MS Office en un programa ASP.NET

Incrustando MS Project

Incrustando Visio

Una manera sencilla de incrustar un Excel a una página web

Incrusta MS PowerPoint

Desactiva comando estándar MS Word

Desactiva botón de cinta de Office

Una navaja suiza para todas tus necesidades de diagramación

EdrawMax es la herramienta de diagramación más fácil de usar que sirve para todos tus propósitos. Proporciona un espacio de trabajo para crear más de 280 tipos de diagramas, incluyendo diagramas de flujo, diagramas de Ishikawa, diagramas UML, planos de piso y más. Acelera la comprensión e impulsa la innovación en múltiples plataformas. ¡Pruébala gratis ahora!