【Outlook VBA】 메일이나 약속을 필터로 검색

2985 단어 VBAOutlook
※이 기사의 최신 버전은 여기로 이동했습니다.

소개



VBA를 사용하여 Outlook을 조작하고 메일 및 약속을 검색할 때 Items.Find() 또는 Items.Restrict()를 사용합니다. 이 메소드에 지정하는 필터 구문에 대해 알았던 부분을 정리했다.

MS 문서: htps : // / cs. mic로소 ft. 코 m / 쟈 jp / 오후 우세 / v 바 / 오우 t o k / 호 w와 / 세아 rch - an d fu l r / fu l terin g- ms

Outlook 버전: Office 365

기초 지식



필터에 지정할 수 있는 구문은 2개. Jet 구문과 DASL 구문.
Jet 구문은 SQL WHERE 절과 같은 쓰기 방법. 그러나 정방향 일치 검색이 없습니다.
DASL 구문에는 정방향 일치 검색이 있지만 ci_startswithci_로 시작하는 구문을 사용할 수 없습니다. "검색 작업에 콘텐츠 색인 키워드를 사용할 수 없습니다."오류가 발생합니다.

Jet 구문에서 사용할 수 있는 열명(포인트)은 VBA의 MailItem 등의 Item 객체의 프로퍼티와 같다고 생각된다.

문자열 필터



Jet 구문 샘플:
  • [Subject]='あいう'
  • 제목이 "사랑"과 일치합니다. 머리에는 RE:FW:가 붙은 것도 포함된다.


  • DASL 구문 샘플:
  • @SQL="urn:schemas:httpmail:subject" = 'あいう'
  • 제목이 "사랑"과 일치합니다. 머리에 RE: 등이 붙어 있으면 대상외.

  • @SQL="urn:schemas:httpmail:subject" like 'RE:%'
  • 제목이 "RE :"로 시작합니다 (전방 일치)


  • 날짜 필터



    날짜 형식은 "yyyy/MM/dd H:mm". 시각은 「HH」에서도 가능. 엄밀하게는 Outlook이 사용하는 서식에 맞춘다.

    시각까지 제대로 지정하지 않으면, [Start] >= '2020/06/10 0:00'로 했을 때에, 6월 10일 0시 개시의 예정이 필터에 걸리지 않는다.
  • [ReceivedTime] >= '2020/04/15'
  • 메일 수신일이 2020/04/15 이후

  • [Start] >= '2020/06/10 0:00' AND [End] <= '2020/06/30 0:00'
  • 예정 시작일이 6/10 이상이고 종료일이 6/30 이전


  • Boolean 필터


  • [UnRead] = True
  • 메일을 읽지 않음

  • [AllDayEvent] = True
  • 일정이 "종일"입니다


  • 열거형 필터



    Importance(중요도)등은 VBA에서는 열거형으로 지정하지만, 필터 구문에서는 모두 숫자로 옮겨놓는다.
  • [Importance] = 2
  • 중요도가 높음


  • MailItem (메일)



    검색에 사용할 것 같은 속성을 올려 둔다.


    속성 이름
    금형
    설명


    Subject
    문자
    제목

    SenderEmailAddress
    문자
    발신자의 이메일 주소

    ReceivedTime
    날짜
    수신 일시

    UnRead
    Boolean
    읽지 않은지 여부


    AppointmentItem (예정)




    속성 이름
    금형
    설명


    Subject
    문자
    제목

    시작
    날짜
    시작일시


    날짜
    종료일시

    AllDayEvent
    Boolean
    하루 종일 여부

    위치
    문자
    위치

    좋은 웹페이지 즐겨찾기