VBS(Visual Basic Script)

[Visual Basic] 비주얼베이직 스크립트 (VBScript), 딕셔너리 (Dictionary) 만들기 사용하기 특징

안산드레아스 2022. 8. 2. 11:40
반응형

딕셔너리 장점.

1. 데이터 검색,추가,수정,삭제 쉬움

2. 간단히 사용

3. 모든 데이터 (배열, 딕셔너리)를 넣어서 사용가능.

 

갖고있는 속성 (Property)

 - Count : 현재 저장 갯수 반환

 - Item("Key값") : "Key값" 을 이용해 할당되어있는 값을 반환

 - Key("Item값") : "Item값" 을 이용해 할당되어있는 Key값을 반환

 - CompareMode : Dictionary Object 에서 String(문자열) Key를 비교하는 모드.

 

갖고있는 매서드 (Method)

 - Add [key]: key 값 추가 (존재하면 에러 key값 중복x)

 - Add [Value] : item 값 추가

 - Remove [key] : 유저가 지정한 Key값 및 value 제거

 - RemoveAll : 모든 Key와 Value 제거

 - Exists(키값) : 키값이 존재하면 True 반환, 없으면 False 반환

 - Keys : 모든 key값을 배열(array)반환

 - Items : 모든 value값을 배열(array)로 반환

 

 

딕셔너리를 생성할 때는 아래와 같이 만든다.

' dictionary 만들때
dim oDict
Set oDict = CreateObject("scripting.Dictionary")

 

딕셔너리의 인자는 Key : item 으로 이루어져 있다.

Key와 item 은 서로 1:1 매칭이며, Key값은 중복되지 않으며 고유하다. 이를통해 item을 빠르게 찾을 수 있다.

생성한 dictionary에 key값과 item값을 추가하는 방법은 아래와 같다.

oDict.Add key값, item값 (여기서 oDict 은 Dictionaray object)

' key : item 으로 구성
' 1 : apple
' 2 : banana 
' "test" : "orange"
' 으로 매칭시켜놓음


dim oDict
Set oDict = CreateObject("scripting.Dictionary")

' key : item 으로 구성
' Add 매서드를 이용해 값 넣기 
oDict.Add 1,"apple"
oDict.Add 2,"banana"
oDict.Add "test", "orange"

' Item 프로퍼티(속성)을 이용해 넣는 방법
oDict.Item("example") = "juice"

msgbox oDict.item(1)
msgbox oDict.item(2)
msgbox oDict.item("test")

(실행결과) 위 key값들이 순서대로 출력

 

Key값 변경하기

key값  1을 item값을 제거하고, 새로운 값 "damm"을 넣음

' dictionary 만들때
dim oDict
Set oDict = CreateObject("scripting.Dictionary")

' key : item 으로 구성
oDict.Add 1,"apple"
oDict.Add 2,"banana"
oDict.Add "test", "orange"
' Item 프로퍼티(속성)을 이용해 넣는 방법
oDict.Item("example") = "juice"

' 해당 key값을 제거하고 새로운 item 값을 넣음
oDict.Remove 1
oDict.Add 1,"damm"

msgbox oDict.item(1)
반응형

(결과)

 

 

Key값 존재 여부 확인 후 값 넣기

Key값이 이미 존재 한다면 해당 Key에 새로운 값을 넣음

' dictionary 만들때
dim oDict
Set oDict = CreateObject("scripting.Dictionary")

' key : item 으로 구성
oDict.Add 1,"apple"
oDict.Add 2,"banana"
oDict.Add "test", "orange"
' Item 프로퍼티(속성)을 이용해 넣는 방법
oDict.Item("example") = "juice"

if oDict.exists(1) then
    oDict.item(1) = "pineapple"
End if

msgbox oDict.item(1)

 

아래 예시는 좀 더 복잡하게 Dictionary를 선언하여 Value값에 List와 같은 값을 넣어서 활용하는 방법이다.

VBScript는 List라는 Type이 없어서 Array를 사용한다.

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

 

[Visual Basic] 비주얼베이직 스크립트 (VBScript), 딕셔너리 (Dictionary)에 List, Array (리스트, 배열) 활용

VBscript에서 Dictionary를 만들고 사용하는 간단한 방법과 설명은 아래 링크를 참고. https://ansan-survivor.tistory.com/1627 [Visual Basic] 비주얼베이직 스크립트 (VBScript), 딕셔너리 (Dictionary) 만들기 사용하기

ansan-survivor.tistory.com

 

 

 

(자세한 사항은 마소 docs 보기)

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

 

Dictionary object

Office VBA reference topic

docs.microsoft.com

 

 

반응형