원래는 VBA에서 아래와 같은 명령으로 선택된 도형의 폰트 윤곽선을 없앨 수 있습니다.

    ActiveWindow.Selection.ShapeRange.TextFrame2.TextRange.Font.Line.Visible = msoFalse

 

하지만 VBA 버그인지(?) 작동하지 않습니다.

Line.Visible = msoTrue 는 작동하지만 Line.Visible = msoFalse 는 작동하지 않습니다.

엑셀에서 매크로 녹화를 해도 위와 같은 코드가 나오지만 실행하면 적용이 되지 않습니다.

직접 도형이나 텍스트를 선택하고 윤곽선 '없음'을 선택하면 적용이 됩니다.

VBA에서 처리하려면 임의의 텍스트 상자를 만들고 텍스트를 거기에 붙여넣고 다시 원래 도형에 붙여넣는 식의 작업을 해야합니다. 텍스트의 다양한 속성을 복사하는 것은 무척 번거롭습니다.

그래서 조금 다른 방법을 사용해보았습니다.

AutoHotKey를 이용하는 것입니다.

단축키가 눌리면 현재 열린 프리젠테이션의 각 슬라이드를 차례로 선택하고

각 도형을 선택한 다음 Alt+JD + TO+ N 이 차례로 눌리도록 하는 것입니다.

그러면 마우스나 키보드로 해당 도형의 윤곽선을 '없음'으로 설정하는 효과가 나옵니다.

테이블(표), 스마트아트, 차트 등은 약간씩 다른 단축키를 적용해야 합니다.

01

아래와 같은 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을 누르면

현재 프리젠테이션의 각 슬라이드의 각 도형을 순환하면서 윤곽선 속성을 없애줍니다.

경우에 따라서는 적용이 안되는 개체가 있을 수 있습니다.

 

PPTRemoveFontOutline_F3.ahk
0.00MB

EXE파일 압축해제 암호는 konahn 입니다.

PPTRemoveFontOutline_F3.zip
0.44MB