cgy12306
[VBS] 기본 문법 본문
회사에서 엑셀을 자동화하기 위해서 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