VBS(Visual Basic Script)
[Visual Basic] 비주얼베이직 스크립트 (VBScript), 외부에 있는 .vbs파일의 함수 가져오기 (import function in external VBS file)
안산드레아스
2023. 2. 6. 18:40
반응형
VBScript의 함수에 대해서는 아래를 참고한다. (Function과 Sub의 작동방식, 차이)
https://ansan-survivor.tistory.com/1591
vbscript는 외부의 .vbs를 쉽게 가져와 실행이 불가, 그래서 전역변수를 만들어 가져오는 방법이다.
아래의 예시는,
a.vbs와 b.vbs가 동일 경로에 있을 때 아래와 같은 방법으로 Include 함수로 해당 .vbs 파일을 불러와 사용.
1. a.vbs에 전역변수로 선언되어있는 값을 msgbox로 보기
2. a.vbs에서 선언된 함수의 리턴값을 msgbox로 보기
3. a.vbs의 sub루틴 함수 실행하기
a.vbs 파일에 있는 Add() 함수를 가져와서 b.vbs 에 실행하는 방법.
a.vbs 파일
'
' 공용함수를 보관할 스크립트
'
Option Explicit
' 전역변수로 쓸 값 확인, 결과값에 +3을 함
Dim AddResult_Plus3
' Function으로 값 리턴하기
Function Add(a, b)
Dim fun_result
' 전역변수에 값을 대입
AddResult_Plus3 = a + b + 3
' Add함수의 리턴 값. Add함수명에 아래와 같이 값을 넣어주어야 함.
fun_result = a + b
Add = fun_result
End Function
' Sub-routine은 리턴기능이 없음. 자체적 기능 수행.
Sub MySubRoutine
MsgBox TimeValue(Time)
End Sub
반응형
b.vbs 파일
Option Explicit
' import external .vbs file
Sub Include(sFilePath)
On Error Resume Next
Dim oFSO, oTextFile, sText
Set oFSO = CreateObject("Scripting.FileSystemObject")
If oFSO.FileExists(sFilePath) Then
Set oTextFile = oFSO.OpenTextFile(sFilePath, 1) ' 1 = for Reading
sText = oTextFile.ReadAll
oTextFile.Close
ExecuteGlobal sText
End If
Set oFSO = Nothing
Set oTextFile = Nothing
End Sub
' a.vbs 불러오기
Call Include("a.vbs")
' 1. a.vbs 내에 있는 함수를 실행하기, 전역변수 출력하기
Call Add(1,2)
' a에 선언되어있는 전역변수값 출력, 해당 변수는 Add()결과 값
MsgBox AddResult_Plus3
' 2. 리턴된 함수값 확인
Dim FromExternalValue
FromExternalValue = Add(1,2)
MsgBox FromExternalValue
' 3. sub 루틴 함수 실행
Call MySubRoutine()
(결과)
b를 실행시키면, a.vbs 내 선언된 Add() 함수를 연산하여, msgbox로 아래 순서대로 띄움.
* 전역변수 AddResult_Plus3 값
* 리턴값 FromExternalValue 값
* Sub루틴 함수 실행 결과 값
반응형