cgy12306

[VBS] 기본 문법 본문

Programming/VBS

[VBS] 기본 문법

cgy12306 2022. 8. 14. 14:13

회사에서 엑셀을 자동화하기 위해서 VBS로 툴을 만들었었다... 이걸 하게 될줄은 몰랐지만.. 까먹기전에 저장...

Visual Basic Script

엑셀 파일 열기 및 저장

set args = wscript.arguments '인자 설정
set xl = createobject("Excel.Application") '엑셀 객체 생성
set wb = xl.Workbooks.open(파일) '엑셀 파일 오픈

wb.save
wb.close
xl.quit

cell 값 가져오기 및 쓰기

wscript.echo wb.sheets(시트번호).cells(행, 열) 'sheet 값 가져와서 출력
wb.sheets(시트번호).cells(행, 열) = "AAA"

cell 열 너비 지정

wb.sheets(시트번호).Columns("열").ColummnWidth = 12

cell 영역지정

wb.sheets(시트번호).Range("시작셀:마지막셀")

cell 가운데 정렬

wb.sheets(sheetNum).cells(행,열).HorizontalAlignment = -4108

Error : Range 클래스 중 HorizontalAlignment 속성을 설정할 수 없습니다.

xlHAlignCenter 값을 인식할 수 없기 때문에 -4108로 직접 넣어주면 가운데 정렬이 가능

https://www.delmadang.com/community/bbs_view.asp?bbsNo=17&indx=452539&list_idx=452539

cell 색 가져오기 및 칠하기

wb.sheets(시트번호).cells(행,열).interior.color = rgb(red 값, green 값, blue 값)
red = wb.sheets(시트번호).cells(행,열).interior.color mod 256
green = (wb.sheets(시트번호).cells(행,열).interior.color / 256) mod 256
red = (wb.sheets(시트번호).cells(행,열).interior.color/ 65536) mod 256

문자열 비교

strcomp("문자열1", "문자열2") '세번째 인자로 1을 넣으면 대소문자 무시

반환값

  • -1 ( 문자열1 < 문자열2)
  • 0 (일치)
  • 1 (문자열1 > 문자열2)
  • NULL(문자열1 혹은 문자열2가 NULL)

문자열 포함하는지 확인

instr("문자열1", "문자열2")

반환값

  • 문자열1이 “”인 경우 0 반환
  • 문자열1이 NULL인 경우 NULL 반환
  • 문자열2가 “”인 경우 문자열1의 시작지점 반환
  • 문자열2가 NULL인 경우 NULL 반환
  • 문자열2가 발견되지 않은경우 0
  • 문자열2가 문자열1에 포함되는경우 발견되는 위치 반환

비교문

If 조건 then
    ...
elseif 조건 then
    ...
else
    ...
end if

반복문


For i = 0 to 7
    wscript.echo i
next
' 0 1 2 3 4 5 6 7
do until 조건 '조건을 만족할때까지 반복
    ...
loop

do while 조건 '조건이 거짓일때까지 반복
    ...
loop

Cell 내용 개행

"문자열1" & Chr(13) & Chr(10) & "문자열2"
'출력내용
'문자열1
'문자열2

파일 읽기

Dim objFSO
SET objFSO = CreateObject("Scripting.FileSystemObject")

set file = objFSO.opentextfile(파일, 1, False, 0)
do while file.atendofstream <> True
	data = file.readline
loop
objFSO.close
Comments