파워포인트, 엑셀 등에서 Alt키를 누르고 일련의 키를 눌러서 단축키를 쓸 수 있습니다.

예를 들어, 선택된 도형내 텍스트의 가로 정렬을 왼쪽으로 하려면

'Alt+H'를 누르고 그 다음 'A,L'을 누르는 식입니다.

 

하지만 단축키라고 하기엔 너무 많은 키를 조합해야 해서 실제로는 쓸모가 없습니다.

예를 들어, 선택된 도형내 텍스트의 세로 정렬을 위쪽으로 하려면

'Alt+H'를 누르고  그 다음 'A, T, T'를 차례로 누르는데 빠른 단축키라기 보다는 단계적인 키조작이라고 볼 수 있습니다.

 

이 때 AutoHotKey를 이용해서 단축키 하나만 누르면 일련의 단축키 조합을 자동으로 눌리게 할 수 있습니다.

여기서 주의할 것은 오피스에서는 처음 단축키는 Alt키를 0.1초정도 일정시간이상 누르고 있어야 작동하기 시작합니다.

또한 그때마다 필요한 단축키 시퀀스는 여러가지가 있을 수 있기 때문에 사용자가 필요한 것을 설정해서 쓸 수 있으면 좋겠습니다.

 

조금 복잡한 단축키 시퀀스 예를 들자면,

현재 도형을 슬라이드 가운데로 정렬하게 하는 작업의 경우

 

1. Alt+ JD를 누르고

2. 그다음 맞춤 AA를 누르고

3. 다음으로 A를 눌러 슬라이드에 맞춤을 설정하는 식입니다.

 

이러한 과정을 3번 거쳐야 하는데

요약하자면  Alt + JD + AA + A 를 누른 후에 

다시 Alt+ JD + AA +M를, 

또다시 Alt+JD + AA +C를 순서대로 눌러야 합니다.

(참고로 소문자로 눌러야 작동함에 유의해야 합니다.)

이 세번의 단축키 시퀀스를 차례로 오토핫키 단축키로 실행하는 것입니다.

 

단축키 시퀀스는 사용자가 바꿀 수 있도록 파일명에 넣도록했습니다.

 

파일명이 OfficeKey_!jdaaa!jdaac!jdaam_F3.exe 이면

단축키 F3을 누르면 위에서 살펴본 세번의 단축키 시퀀스가 차례로 작동하게 됩니다.

 

단, 첫번째 단축키 즉 !는 Alt 키를 누르고 j 를 누르고 나서 0.1초 대기 후 Alt키가 올라오도록 해야 오피스에서 단축키가 작동하기 시작합니다. 첫번째 단축키는 1글자로 제한합니다.

Alt => !, Ctrl => ^, Shift => +, Win=> # 로 바꿔서 써줘야 합니다.

오피스는 Alt 로 시작하기 때문에 !만 사용하면 됩니다.

 

그밖에 AutoHotKey 에서 Send 명령에 쓰이는 특수키는 링크를 참고하세요.

 

실행 화면을 참고하세요. F3키로 개체 중앙정렬을 단축키를 보내서 처리합니다.

Alt 키가 눌려서 리본메뉴가 번쩍번쩍하는 것이 보입니다.

 

AHK 스크립트 소스는 아래를 참고하세요.

 

더보기

 

#SingleInstance, Force
#NoEnv   ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
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_!hvs{ENTER}i{ENTER}_F3

sName := % SubStr( A_ScriptName, 1, -4)
StringSplit, tmp, sName,_
;msgbox %tmp3%
;key := "{" . tmp2 . "}"

if ( tmp2 = "" or tmp3 = "") {
	MsgBox,hotkey not specified: rename this file to be like 'OfficeKey1_!abcd_F3.exe'
	ExitApp
}
msgbox, Press %tmp3% or <Win+a>key to send %tmp2% key to MS Office.`nPress <Win+s> to pause and press <Win+x> to quit.

Hotkey, % tmp3, myLabel
return

#a::
myLabel:
	pauseFlag := 0
	;waitRelease()
	;msgbox, %pauseFlag%
	if ( pauseFlag = 1 )
		Return
	key1 := substr(tmp2,1,1)
	key2 := substr(tmp2,2,1)
	key3 := substr(tmp2,3)
	okey := false

	If (key1 = "!") {
		okey := true
		key1 := "Alt"
	}
	else if (key1 = "^") {
		okey := true
		key1 := "Ctrl"
	}
	else if (key1 = "+") {
		okey := true
		key1 := "Shift"
	}
	else if (key1 = "#") {
		key1 := "Win"
	}
	;msgbox,,,%key1a% %key2% %key1b%

	if(okey = true ) {
		Send,{%key1% down}
		sleep,150
		Send,%key2%
		Send,{%key1% up}
		Send,%key3%

	}
	else {
		Send,%key1%%key2%%key3%
	}

 	Return

#s::
	pauseFlag := 1
	Return

#x::
	ExitApp


waitRelease() {
	KeyWait Control
	KeyWait Shift
	KeyWait Alt
}

 

만약 파일명이 OfficeKey_!hvs{ENTER}i{ENTER}_F4.exe 이면

F4가 개체를 링크로 삽입하는 단축키가 됩니다.

 

EXE파일명에서 OfficeKey_!abcd_F4.exe처럼

필요한 단축키 시퀀스를 첫번째 '_'다음에 써주고 그 다음 '_'다음에 지정할 단축키를 넣어주세요.

 

사용자가 지정한 단축키 또는 Win+A 를 누르면 단축기 시퀀스를 내보내고

Win+S는 잠시 중단하고, Win+X는 종료합니다. 여러 개가 실행중이면 가장 나중에 실행한 exe가 우선이 되겠습니다.

 

!(Alt), ^(Ctrl), +(Shift) 이면 오피스가 인식할 수 있도록 해당키를 누른 상태에서 그 다음 문자를 누르고 조금 있다가 뗍니다. 그리고 다음 단축키를 차례로 실행합니다. #은 윈도우키입니다.

나머지 키인 경우 그대로 키보드나 마우스키를 입력하도록 수정했습니다.[2023.1.6]

OfficeKey1.ahk
0.00MB

 

 

F4키 누르면 개체를 링크로 삽입:

OfficeKey_!hvs{ENTER}i{ENTER}_F4.exe
0.34MB

F3키를 누르면 슬라이드 중앙기준으로 개체를 중앙에 맞춤:

OfficeKey_!jdaaa!jdaac!jdaam_F3.exe
0.34MB

F3키를 누르면 선택한 셀을 병합:

OfficeKey_!jlm_F3.exe
0.34MB

F3키를 누르면 자간을 0.1씩 줄이기

OfficeKey_!h6m{TAB}{UP}{ENTER}_F3.exe
0.34MB

F4키를 누르면 자간을 0.1씩 늘이기

OfficeKey_!h6m{TAB}{DOWN}{ENTER}_F4.exe
0.34MB

 

F3을 누르면 마우스우클릭하고 Z키 다음에 A키를 눌러서 '가로 세로 비율 고정'

OfficeKey1_{RButton}za_F3.exe
0.79MB

 

F3을 누르면 현재 선택된 도형을 클립보드에 저장된 이미지로 채워넣기

OfficeKey1_!jdsftmpc_F3.exe
0.80MB

 

이 밖에도 파일명만 변경하면 사용자가 원하는 키조합을 원하는 단축키에 지정할 수 있습니다.