원래는 VBA에서 아래와 같은 명령으로 선택된 도형의 폰트 윤곽선을 없앨 수 있습니다.
ActiveWindow.Selection.ShapeRange.TextFrame2.TextRange.Font.Line.Visible = msoFalse
하지만 VBA 버그인지(?) 작동하지 않습니다.
Line.Visible = msoTrue 는 작동하지만 Line.Visible = msoFalse 는 작동하지 않습니다.
엑셀에서 매크로 녹화를 해도 위와 같은 코드가 나오지만 실행하면 적용이 되지 않습니다.
직접 도형이나 텍스트를 선택하고 윤곽선 '없음'을 선택하면 적용이 됩니다.
VBA에서 처리하려면 임의의 텍스트 상자를 만들고 텍스트를 거기에 붙여넣고 다시 원래 도형에 붙여넣는 식의 작업을 해야합니다. 텍스트의 다양한 속성을 복사하는 것은 무척 번거롭습니다.
그래서 조금 다른 방법을 사용해보았습니다.
AutoHotKey를 이용하는 것입니다.
단축키가 눌리면 현재 열린 프리젠테이션의 각 슬라이드를 차례로 선택하고
각 도형을 선택한 다음 Alt+JD + TO+ N 이 차례로 눌리도록 하는 것입니다.
그러면 마우스나 키보드로 해당 도형의 윤곽선을 '없음'으로 설정하는 효과가 나옵니다.
테이블(표), 스마트아트, 차트 등은 약간씩 다른 단축키를 적용해야 합니다.
아래와 같은 AHK 스크립트를 이용할 수 있습니다.
#SingleInstance, Force
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
CoordMode, Pixel, Screen
;; OfficeKey_F3
sName := % SubStr( A_ScriptName, 1, -4)
StringSplit, tmp, sName,_
;msgbox %tmp2%
;key := "{" . tmp2 . "}"
msgbox, Press %tmp2% or <Win+a>key to send keys to remove font outline in MS PowerPoint.`n`nPress <Win+s> to pause and press <Win+x> to quit.
Hotkey, % tmp2, myLabel
return
#a::
myLabel:
pauseFlag := 0
;waitRelease()
;msgbox, %pauseFlag%
if ( pauseFlag = 1 )
Return
ppt:=ComObjActive("PowerPoint.Application")
ppt.Visible := True
IfWinActive, ahk_exe POWERPNT.EXE
{
total := ppt.ActivePresentation.Slides.Count
loop %total%
{
sld := ppt.ActivePresentation.Slides(A_Index)
sld.Select
sleep, 50
totals := sld.Shapes.Count
loop %totals%
{
shp := sld.Shapes(A_Index)
shp.Select
sleep, 30
if (shp.Type = 19) { ;Table
key1 := "Alt"
key2 := "j"
key3 := "tton"
} else if (shp.Type = 24) { ;SmartArt
key1 := "Alt"
key2 := "j"
key3 := "oton"
} else if (shp.Type = 3) { ;Chart
key1 := "Alt"
key2 := "j"
key3 := "aton"
} else {
key1 := "Alt"
key2 := "j"
key3 := "dton"
}
Send,{%key1% down}
sleep,200
Send,%key2%
Send,{%key1% up}
;OutputDebug,%key2%%key1%
Send,%key3%
sleep, 300
}
}
ppt:=""
}
Return
#s::
pauseFlag := 1
Return
#x::
ExitApp
실행영상(영상 중반에 F3단축키를 눌러서 스크립트를 실행합니다.):
첨부한 EXE파일을 실행하고 F3을 누르면
현재 프리젠테이션의 각 슬라이드의 각 도형을 순환하면서 윤곽선 속성을 없애줍니다.
경우에 따라서는 적용이 안되는 개체가 있을 수 있습니다.
EXE파일 압축해제 암호는 konahn 입니다.
'AutoHotKey' 카테고리의 다른 글
두 개체 사이 거리를 다른 개체에 복사 적용 (0) | 2022.12.09 |
---|---|
텍스트 상자 자동으로 들여쓰기/내어쓰기(Shift-Tab) (2) | 2022.12.02 |
화면확대후 키보드로 슬라이드 화면스크롤하기 (1) | 2022.10.13 |
단축키로 프로그램 실행 또는 파일 열기 (0) | 2022.09.26 |
오피스 단축키 만들기 (0) | 2022.07.23 |
Microsoft 365 구독버전 이메일 또는 계정이름 감추기 (0) | 2022.03.01 |
슬라이드쇼 도중 이전 슬라이드로 돌아가기 단축키 (0) | 2022.02.12 |
슬라이드쇼 잉크 색깔 변경 단축키 (2) | 2021.12.09 |
최근댓글