vbscript 파일에서 Excel 매크로(vba) 실행

vbscript 파일에서 Excel 매크로(vba) 실행

데이터베이스에서 정보를 가져와서 해당 데이터를 Excel 파일(C:\file.csv)로 내보내는 vbs 파일이 있습니다. 이 작업이 완료되면 일련의 매크로(vba)를 실행하여 이 데이터의 형식을 지정합니다. 이 매크로는 항상 동일합니다. 저는 일반적으로 텍스트 파일에서 스프레드시트로 매크로를 복사/붙여넣은 다음 수동으로 실행합니다.

데이터를 스프레드시트로 내보낸 후 매크로가 실행되도록 매크로 vba를 vbs 파일에 포함할 수 있는 방법이 있습니까?유사한 솔루션방법을 보여줘부르다매크로의 내용을 내 vbs 파일에 저장/실행하려는 Excel 파일의 사전 정의된 매크로입니다. VBS가 새로운 파일을 생성한 다음 서식 지정 매크로를 실행하므로 이는 도움이 될 것입니다.

내 생각엔 내가 사용해야 할 것 같아Set objWorkbook = objExcel.Workbooks.Open("C:\file.csv")

답변1

당신은 올바른 길을 가고 있습니다. 먼저 필요한 것은 후기 바인딩을 사용하여 Excel.Application에 대한 새 변수를 설정하는 것입니다. 모든 일반 Excel VBA 기능이 숨겨져 있는 개체 아래에 있습니다. 다음은 새 통합 문서를 열고, 새 시트를 추가하고, 이름을 "TEST"로 지정하고, A1해당 새 시트의 셀에 일부 콘텐츠를 추가하는 예제 vbs 스크립트입니다. 완료되면 VBS는 "Finished"를 출력합니다.

Sub createWB()

  'Set the excel application variable
  set xlApp = CreateObject("Excel.Application")

  'Make it visible, or hide it in the background
  xlApp.Application.Visible = true

  'Open a new workbook, for instance
  set xlWB = xlApp.Workbooks.Add()
  xlWB.Activate

  'Add a sheet, name it test, bring it front and center
  set xlSheet = xlWB.Worksheets.Add()
  xlSheet.Name = "TEST"
  xlSheet.Activate

  'Put something in cell A1
  xlSheet.Cells(1,1).value = "TEST CELL CONTENT"

End Sub

'Call the subroutine above
call createWB

WScript.Echo "Finished."
WScript.Quit

VBS를 만족시키기 위해 기존 VBA 코드를 약간 조작해야 할 수도 있지만 VBS에서 매크로를 작성하는 것은 VBA에서 작성하는 것만큼 기능적이라는 것을 알게 될 것입니다.

답변2

얼마 전에 나는 이것을 시도했습니다.다른 여러 SU 답변. 내가 찾은 유일한 방법은 VBScript 대신 PowerShell을 사용하는 것입니다. PowerShell은 모든 VBA 명령을 실행할 수 있습니다. 구문만~할 수 있다다르다.

PowerShell 스크립트로서의 VBA 예제

$excel = New-Object -ComObject excel.application 
$workbook = $excel.Workbooks.Open("C:\file.csv")
$excel.visible = $true

답변3

매크로를 Excel 템플릿에 넣을 것입니다. 그런 다음 템플릿에 autonew 매크로를 만들어 csv 파일을 가져오고 서식 지정 매크로를 실행합니다.

그런 다음 vbs를 사용하여 csv 파일을 생성 및 저장하고 템플릿을 기반으로 Excel 파일을 열었습니다.

관련 정보