반응형

 

VBscript에서 배열을 선언하는 방식은 아래와 같다.

'Method 1 : 동적 배열 선언 (사이즈를 한정하지 않음)
Dim arr1() 'Without Size

'Method 2 : 정적 배열 선언 (사이즈를 한정함 5칸)
Dim arr2(5) 'Declared with size of 5

'Method 3 : 정확한 parameter 를 넣어 선언
Dim arr3
arr3 = Array("apple","Orange","Grapes")


for i = 0 to 2 step 1
    msgbox "num of " & arr3(i),, ""
next

(결과)

for문으로 3번 반복하게 했으며, 그때마다 출력이 달라진다.

 

반응형

 

Array에 정해진 크기를 할당한 후, 각 array 칸당 하나씩 값을 입력하기

출력할 수 있는 타입들. (문자열, 숫자(정수/소수) , 날짜, 시간

' array를 5칸 지정(assign)하고,
' 그러면 0부터 5까지 총 6개의 array가 할당된다.
' 아래와 같이 각 array에 값을 하나씩 넣을 수 있다.


Dim arr(5)
arr(0) = "1"            'Number as String
arr(1) = "VBScript"     'String
arr(2) = 100            'Number
arr(3) = 2.45           'Decimal Number
arr(4) = #10/07/2013#   'Date
arr(5) = #12.45 PM#     'Time


for i = 0 to 5 step 1
    msgbox "num of " & arr(i),, ""
next

(결과) 아래와 같이 msgbox가 연달아 실행된다.

 

 

 

ReDim a()  : 이미 정의되어있는 배열크기 재정의

ReDim Preserve a() : 기존의 배열값을 유지한 채 array 크기를 다시 정의

ubound(a : 배열의 사이즈 (크기)를 담음


' array의 크기를 한정하지 않고, dynamic하게 조절
' ReDim은 다시 정의 한다는 뜻으로 안에 내용물을 싹 지우고 새롭게 할당.
' REDIM PRESERVE 는 기존 내용물은 그데로 두고 수정 및 추가에 사용.


' a()는 dynamic 사이즈의 array로 들어오는 array따라 유동적으로 크기 변경
DIM a()
i = 0

' REDIM 으로 선언하여 기존의 a()를 새롭게 5칸 크기로 재정의
REDIM a(5)
a(0) = "XYZ"
a(1) = 41.25
a(2) = 22


'위에서 선언된 a(5) 까지 모든 항목은 그대로 유지한체, 사이즈를 a(7)까지 늘림
'즉 a(0),a(1),a(2) 값은 그대로 유지
REDIM PRESERVE a(7)
For i = 3 to 7
   a(i) = i
Next
  
'for문의 루프수를 a배열의 갯수만큼 돌림
For i = 0 to ubound(a)
   Msgbox a(i)
Next


for i = 0 to 5 step 1
   msgbox "num of " & arr(i),, ""
next

(결과)

배열의 갯수 만큼 a(0) 값부터 쭉 출력됨

a(0)
a(1)
a(2)
a(3)
a(4)
a(5)
a(6)
a(7)

 

그밖에 배열 관련 함수

FunctionDescription

LBound A Function, which returns an integer that corresponds to the smallest subscript of the given arrays.
UBound A Function, which returns an integer that corresponds to the Largest subscript of the given arrays.
Split A Function, which returns an array that contains a specified number of values. Splitted based on a Delimiter.
Join A Function, which returns a String that contains a specified number of substrings in an array. This is an exact opposite function of Split Method.
Filter A Function, which returns a zero based array that contains a subset of a string array based on a specific filter criteria.
IsArray A Function, which returns a boolean value that indicates whether or not the input variable is an array.
Erase A Function, which recovers the allocated memory for the array variables.

 

<배열의 차원 및 갯수 구할때 사용 LBound , UBound>

* LBound

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/lbound-function

 

LBound function (Visual Basic for Applications)

Office VBA reference topic

docs.microsoft.com

 

* UBound

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/ubound-function

 

UBound function (Visual Basic for Applications)

Office VBA reference topic

docs.microsoft.com

 

<문자열을 특정 Delimete으로 자르기 Split>

https://www.w3schools.com/asp/func_split.asp

 

VBScript Split Function

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

<문자열을 특정 Delimete으로 붙이기 Join>

https://www.w3schools.com/asp/func_join.asp

 

VBScript Join Function

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

<문자열 내 특정 단어를 검색하여 내부 값을 찾아냄 Filter>

https://www.w3schools.com/asp/func_filter.asp

 

VBScript Filter Function

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

아래 간단한 코드를 돌려보면서 이해

' 변수 정의하기
Dim temparr

' 이미 정의된 변수 재정의하며 동시에 크기까지 지정 (여기서 크기 1은, 0과 1까지 총 2칸이다)
Redim temparr(1)

' 0번칸에 값 넣기
temparr(0) = "hi"

' array는 0부터시작
msgbox temparr(0)

Redim Preserve temparr(3)
msgbox temparr(0)


txt = "a,b,c,e"
temparr = split(txt, ",")

' 0,1,2,3 숫자세서 마지막 숫자를 셈
msgbox Ubound(temparr)

' Ubound는 temparr의 크기값이 들어감
for i = 0 to Ubound(temparr)
    msgbox temparr(i)
Next

 

 

2차원 배열에 대해서는 아래를 참고.

https://ansan-survivor.tistory.com/1939

 

[Visual Basic] 비주얼베이직 스크립트 (VBScript) 2차원 배열(Array), 배열 크기, 배열사이즈 함수 ubound

앞서 1차원 배열에 관해서는 아래를 참고. https://ansan-survivor.tistory.com/1590 [Visual Basic] 비주얼베이직 스크립트 (VBScript) 배열, 리스트 (Array), 배열 크기, 배열사이즈 함수 uboun VBscript에서 배열을 선언

ansan-survivor.tistory.com

 

* 매우 유용. (생성한 List (Array)에 대해서 Append 시키거나 하는 방법), Collection을 사용하여 List와 같이 활용

https://ansan-survivor.tistory.com/1945

 

[Visual Basic] 비주얼베이직 스크립트 (VBScript), Array와 List사용, 동적 List Append 하기, 좌표점 추가 List

파이썬은 List가 있어서 index를 쉽게 컨트롤할 수 있지만, VBScript에는 List가 없다. VBScript는 "Array" 배열과, Collection이 있으며, Collection을 이용해 List처럼 사용할 수 있다. 배열(Array): 배열은 동일한

ansan-survivor.tistory.com

 

 

 

 

반응형

+ Recent posts