일전에, 자주 쓰는 색을 슬라이드 마스터에 자동 등록하는 매크로를 만드는 글을 작성한 적이 있다. 애초 설계를 했을 때, 내가 사용하는 색이 두가지 뿐이었으므로, 두가지 색만 강제로 생기도록 설계를 했었는데, 사용상 아쉬움이 많다.
애드센스 수익은 개망했지만, 그래도 떠오른 것은 한번 만들고 글을 적는다.
①번 선택창
기본 색상을 적용할지 YES/NO 선택창
- Yes : CI 색상 2개 컬러와 회색 컬러 2개 박스가 생기고, 종료.
- No : ②번 선택창으로 이동
②번 선택창
원하는 컬러를 입력하는 방식을 선택 - HEX color 형태를 입력할지 여부를 선택
- Yes : ③번 입력창(HEX color)으로 이동
- No : ④번 입력창(RGB color)으로 이동
③번 입력창(HEX color)
HEX color code 값을 입력해준다. #000000 형태로, #은 넣어도 되고, 빼도 된다.
좌측 정렬된 박스 중 몇번째에 넣을지 인덱스 값을 넣어준다. 위에서부터 1번이며, 없는 인덱스 값일 경우, 신규로 생성을 한다. 단, 기존에 있는 인덱스 번호이면, 위에 올려진다.
아래는 3번 인덱스 값에 녹색을 넣은 결과이다. HEX code가 뭐였는지는 기억이 나질 않는다.
④번 입력창(HEX color)
한 개의 창에서 입력하는 형태로 할까 했는데, 그렇게 되면 파워포인트 기본 컬러 세팅하는 창과 별 차이가 없어서, R, G, B 값을 순차적으로 넣게 했다. 입력된 값이 0보다 작으면 0이, 255보다 크면 255가 입력된다. 내가 설계한게 아니라, 파워포인트에서 자동으로 그렇게 하더라.
HEX code 때와 마찬가지로, 인덱스 값을 입력해준다.
4번 인덱스에 덮어쓰면 아래 그림처럼 된다. 슬라이드 마스터에 들어가서 위에 박스를 지우거나 치우면, 아래 박스는 그대로 살아있다.
코드는 아래와 같다.
Sub pal2()
'컬러팔레트
Dim mySlideMaster As Master
Dim left As Integer
Dim top As Integer
Dim size As Integer
Dim idx As Integer
Dim rgb1 As Long
Dim rgb2 As Long
Dim hexcolor As String
Set mySlideMaster = Application.ActivePresentation.SlideMaster
If MsgBox("do you wanna set default?", vbYesNo) = vbNo Then
If MsgBox("do you wanna use HEX color data?", vbYesNo) = vbYes Then