주의!
전문적인 프로그래머의 강좌가 아닌 기획자가 사용하는 꼼수들을 메모한 내용입니다.
섣불리 따라하다가 탈이 날 수 있으니 사용 하기 전 신중한 검토가 필요합니다.

  • 사용자 설정 타입
여러가지 값들을 설정하기 위한 하나의 변수를 만들고 변수 안에 자유롭게 이름을 지정해서 사용할 수 있다.

Private Type 사용자정의타입
     주소 as string
end Type

sub...
     with 사용자정의타입
         주소 = "어딘가";
     end with

debug.print(사용자정의타입.주소);
end sub

사실 변수이름을 잘 지으면 괜찮긴 한데 그룹별로 묶어버리고 싶을 때 사용하면 괜찮을듯?

  • 검색
데이터 테이블같은 곳 에서 위치가 자주 바뀌는 경우 주소값을 찾기 위해 사용
cell(1,5) 이런식으로 지정하지 않기 위해서 주로 사용함.
사용에 주의해야 하는 점이 있다면 엑셀을 실행했을 때 CTRL+F 를 눌러서 보여지는 "찾기" 다이얼로그의 설정값들이 마지막으로 사용된 VBA의 설정값으로 변해 있다는 점.
사용하기에 따라서 불편할 수 있음.

행에서 찾기 (몇번째 열에 위치하는가)
Sheets("Name").Rows(1).Find(What:="찾을내용", LookIn=xlValues, LookAt:=xlWhole).Column

열에서 찾기 (몇번째 줄에 위치하는가)
Sheets("Name").Columns("A").Find(What:="찾을내용", LookIn=xlValues, LookAt:=xlWhole).Row

.Find(What:="", LookIn:=xlValues(xlFunction), LookAt:=xlPart)
기본값이므로 검색 사용한 후 마지막에 돌려줘야 함.

  • EOD
데이터 테이블의 마지막줄을 찾기 위한 트릭
Sheets("Name" )Range("A" & Sheets("Name").Rows.Count).End(xlUP).Row

  • 문서위치 경로
파일 입출력을 쓸 때 컴퓨터마다 주소가 다를 수 있으므로
열려있는 문서를 기준으로 위치를 찾아가기 위한 용도로 사용한다.
ActiveWorkbook.Path
읽기전용으로 여는 경우 임시저장소에서 열리는 경우 있으므로 맹신할 수 없다.

  • Collection
Collection 은 크기가 가변적이기 때문에 배열이나 Object보다 값을 넣기 쉽다. 
선언
변수명 as New Collection

값 추가
변수명.add "asdasd"

배열 형태로 값 추가
변수명.add Array(aaa,aaa,aaa)


'#창고 > 스크립트' 카테고리의 다른 글

[VBA] json 데이터를 VBA OBJECT로 담기  (0) 2018.11.18

위 사이트에서 배포하는 VBA모듈을 적용하면Json 파일 을 VBA 변수 Dictionary로 저장할 수 있다.


objStream = CreateObject ( "ADODB.Stream") 
objStream.Charset = "utf-8"
objStream.Open 
objStream.LoadFromFile ("파일위치") 
jsontext = objStream.ReadText ()

위 형태로 ADODB로 불러온 뒤 JsonConverter 에 넣어야 적용이 가능하다.


예제

{
  "id": 1,
  "name": "Leanne Graham",
  "username": "Bret",
  "email": "Sincere@april.biz",
  "address": {
      "street": "Kulas Light",
      "suite": "Apt. 556",
      "city": "Gwenborough",
      "zipcode": "92998-3874",
      "geo": {
          "lat": "-37.3159",
          "lng": "81.1496"
      }
  },
  "phone": "1-770-736-8031 x56442",
  "website": "hildegard.org",
  "company": {
      "name": "Romaguera-Crona",
      "catchPhrase": "Multi-layered client-server neural-net",
      "bs": "harness real-time e-markets"
  }
},
위와 같은 json 파일을 JsonConverter를 이용해 VBA에 담았을 때 해당 값을 호출하는 방법은 item("key1")("key2")의 형식으로 호출이 가능하다.

debug.print(item("address")("street")) 를 하는 경우 "Kulas Light"가 출력된다.

    Dim JSON As Object
    Set JSON = ParseJson(jsontext)
    On Error Resume Next
      Debug.Print JSON("address")("city") < 에러

    For Each Item In JSON
        Debug.Print Item("address")("city") <정상출력
    Next Item

    On Error GoTo 0
    For Each Item In JSON
        Debug.Print Item("address")("geo")("lng") <정상
    Next Item
위와 같은 형식으로 사용해야 함.



'#창고 > 스크립트' 카테고리의 다른 글

[VBA] 자주 사용하는 기본 스크립트  (0) 2018.11.18

+ Recent posts