VBS에서 Windows API 함수를 호출하는 코드

2057 단어
그날 무심결에'WinCC VBS가 EXCEL을 이용하여 Windows API 함수를 호출한다'는 글을 검색했는데 WinCC가 무엇인지 몰랐고 Google은 서문자 자동화와 관련이 있는 것 같았다.WinCC가 무엇인지는 중요하지 않다. 중요한 것은 이 글은 VBS가 Windows API를 호출하는 일종의 사고방식을 제공했다. 즉, EXCEL VBA는 VB보다 더 VB라는 전설적인 언어이다.
그러나 그 글의 예는 이미 작성된 EXCEL VBA 프로그램을 사용하는 것이다. 즉, 먼저 EXCEL 파일이 존재해야 한다.나는 VBS에서 excel을 통과할 수 있을지 생각했다.응용 프로그램 대상이 VBA 코드를 포함하는 EXCEL 문서를 만들고 호출할까요?Google은 Microsoft 도움말과 지원에서 마침내 Google에 접근했습니다.
두 문장(이 두 문장을 먼저 읽으십시오)을 결합하여 예시 프로그램을 썼는데, 효과는 마우스를 데스크톱 왼쪽 상단으로 이동하는 것이다.만약 당신의 EXCEL이 너무 해적판이 아니라면, 이 VBS를 두 번 클릭하면 효과를 볼 수 있을 것입니다.
 
  
Dim WshShell
set WshShell = CreateObject("wscript.Shell")
WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Security\AccessVBOM",1,"REG_DWORD"
WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security\AccessVBOM",1,"REG_DWORD"
WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Security\AccessVBOM",1,"REG_DWORD"
Dim oExcel, oBook, oModule
Set oExcel = CreateObject("excel.application")
Set oBook = oExcel.Workbooks.Add
Set oModule = obook.VBProject.VBComponents.Add(1)
strCode = _
"Private Declare Function SetCursorPos Lib ""user32"" (ByVal x As Long, ByVal y As Long) As Long" & vbCr & _
"Sub MyMacro(x as Long, y as Long)" & vbCr & _
"SetCursorPos x, y" & vbCr & _
"End Sub"
oModule.CodeModule.AddFromString strCode
oExcel.Run "MyMacro",0,0
oExcel.DisplayAlerts = False
oBook.Close
oExcel.Quit

앞의 3-5줄의 수정 등록표는 VBS가 EXCEL을 완전히 제어할 수 있도록 하기 위해서입니다. strCode는 EXCEL에 있는 VBA 코드를 쓰기 위한 것입니다. 어떻게 VBA에서 Windows API를 호출하는지는 본고의 토론 범위에 속하지 않으니 스스로 자료를 보십시오.oExcel을 사용합니다.Run "MyMacro", 0,0은 우리가 쓴 VBA 코드를 호출합니다.
원문:http://demon.tw/programming/vbs-excel-invoke-windows-api.html

좋은 웹페이지 즐겨찾기