직장에서 기술문서 등을 작성할 때 Microsoft Word 제품을 많이들 사용하실 텐데~ 회사마다 고유의 스타일 서식이나 폰트를 지정해놓고 사용하는 경우가 많이 있습니다. 이러한 경우에 새로운 문서를 작성할 때마다 서식을 반복해서 설정하는 것은 미련한 짓이라고 생각합니다. 서식은 한 번만 만들어 놓고 새로운 문서를 작성 할 때마다 저장해 놓은 서식이나 매크로를 불러들여서 사용한다면 훨씬 더 편리 할 것입니다.

오늘은 Microsoft Word 에서 서식을 저장하고 해당 서식을 적용하는 방법에 대해서 소개하려 합니다.

일단 Microsoft Word 에서 원하는 서식으로 문서를 작성한 후에 해당 문서를 서식으로 재 사용하고 싶은 경우, 다른 이름으로 저장 -> 찾아보기 에서 파일 형식을 “word 서식 파일(확장자 dotx)” 로 저장하면 되고 매크로가 포함된 서식 파일을 저장하는 경우에는 “word 매크로 사용 서식 파일(확장자 dotm)”로 저장하면 됩니다.

저는 현재 Microsoft Office 2013 버전을 사용하고 있는데 Microsoft Word 서식 파일은 Windows 10 의 경우 아래 주소에 저장됩니다. 만약 다른 사람들에게 양식 파일을 새로 받는 경우에도 마찬가지로 아래 주소에 서식 파일을 넣어주어야만 Microsoft Word 프로그램에서 정상적으로 서식을 인식 할 수 있습니다.

D:\Documents\사용자 지정 Office 서식 파일

만들어진 서식을 적용하여 새로 파일을 만드는 경우에는 아래와 같이 새로 만들기 -> 개인 부분을 클릭하고 들어가 보면~ 위에서 만든 서식 파일을 선택해서 문서를 시작 할 수 있습니다.



요즘 같은 시대에 컴퓨터 활용 능력은 아무리 강조해도 부족하지 않을 것 같습니다. 최근에는 많은 아이들이 코딩 교육을 받고 있고 점점 소프트웨어 교육이 의무화 되고 있습니다. 4차 산업 혁명이라는 말은 이제 들어 본지 꽤 오래된 것 같고 아직까지는 생활 속에서 4차 산업 혁명으로 인한 변화가 그리 크지 않아 보이지만 어느 순간이 되면 급격하게 세상이 달라질 거라고 생각합니다. 개인적으로는 4차 산업혁명 시대에는 극단적인 생산성 향상이 일어나는 시대가 될 거라고 생각합니다. 이런 시대에 기계와 대화를 하는 기술인 소프트웨어를 모른다면 경쟁력이 떨어지는 것은 불 보듯 뻔하다고 생각합니다.

드루킹 사건이나 최근에는 한나라당 매크로 사용 뉴스 등으로 인하여 요즘 많은 분들이 매크로에 대해서 많이들 들어 보셨을텐데 매크로란 일련의 작업을 자동화하는 소프트웨어 이고 좋은 의도로 사용한다면 굉장히 크게 자신의 업무 효율을 높일 수가 있습니다. 윈도우에서 사용가능한 대표적인 매크로 프로그램으로는 Autohotkey 나 AutoIt 과 같은 프로그램들이 있습니다.

저는 Autohotkey 를 굉장히 많이 사용하는 편인데 Autohotkey 는 단순히 매크로로만 치부하기에는 너무나 다재 다능한 컴퓨터 언어라고 볼 수 있을 것 같습니다. Autohotkey 를 사용하기 위한 공부는 다른 컴퓨터 언어에 비해서 비교적 쉬운 편이지만 그래도 아무것도 모르는 상태에서 공부를 하는 경우 시간이 꽤 걸릴 거라고 생각합니다. 이런 경우에는 프로그래밍을 조금 더 쉽게 해주는 도구들을 사용하는 것도 좋을 것 같네요.

그중에서 Autohotkey 를 조금 더 쉽게 사용할 수 있게 해주는 도구로써 Pulover's Macro Creator 를 추천드립니다. Autohotkey 를 처음 사용하는 경우 아래 주소의 AutoHotkey Beginner Tutorial 을 따라해 보는 것을 추천드리고

https://autohotkey.com/docs/Tutorial.htm

Autohotkey 의 기본 사용법을 공부한 이후에 Pulover's Macro Creator 를 사용해 보라고 권해 드리고 싶습니다. Pulover's Macro Creator 는 다음과 같이 생겼습니다. 처음에 보면 조금 복잡해 보이지만 시간의 여유를 가지고 조금씩 습득해 보신다면 어떤 프로그램 보다도 생산성 향상에 큰 도움이 될 것입니다.

저는 아래 포스팅에서 이미지서치 와 관련된 내용에 대해서 소개를 했었는데 이미지의 중간 지점을 클릭 하기 위한 함수인 CenterImgSrchCoords() 함수를 Pulover's Macro Creator 를 사용하면서 알게 되었습니다.

http://iamaman.tistory.com/2111

Pulover's Macro Creator 의 홈페이지는 아래 주소와 같고 download 페이지에서 Pulover's Macro Creator 프로그램을 다운로드할 수 있습니다.

http://www.macrocreator.com/

http://www.macrocreator.com/download/

그리고 위의 홈페이지에서 Help & Tutorials 메뉴를 클릭 해서 보시면 Pulover's Macro Creator 의 사용 방법에 대한 개발자의 동영상 강좌를 보실 수가 있습니다.

http://www.macrocreator.com/help/

많이 사용하시는 마이크로소프트 오피스 제품 중에서 워드나 엑셀에 대한 자동화 등을 배울 수 있고 이미지서치 등을 통해서 웹을 어떻게 자동화 하는지도 배울 수 있습니다. 위 주소에서 나오는 동영상에 나오는 기술들만 제대로 습득 한다면 윈도우 사용 과정에서의 대부분의 것들은 자동화 할수 있을 것이라고 생각합니다.



  1. jetree 2018.09.27 19:58

    좋은 글 잘 보고 있어요. 강좌들 고맙습니다. 그런데, CenterImgSrchCoords 의 경우 Pulover's macro creator외에 사용할 경우 에러가 발생하네요.

    오토핫키 포럼에서 찾아보니
    If you know what's the meaning of "CenterImgSrchCoords()",pls tell us to help you further.라고 하네요.

    macro creator에서만 사용가능한 것인지 궁금합니다.

    • 남성 2018.09.27 21:40 신고

      코드 생성해서 함수를 확인해 보면 일반적인 Autohotkey 코드로 되어 있으므로 툴 디펜던트한 코드는 아닙니다. 저도 macro creator 아닌데서도 잘 사용하고 있구요.

  2. 뚜두 2019.03.26 12:17

    pmc(pulover's macro creator)가 오토핫키 언어로 이루어져있다고하던데 그럼 pmc에서 나오는 소스코드를 오토핫키에 그대로 복사해서 실행하면 실행가능한가요?
    컴파일해서 사용하고싶은데 pmc는 컴파일을 지원하지 않는거같아서요 ㅠㅠ

    • 남성 2019.03.26 13:22 신고

      Pulover's Macro Creator 에 ahk 로 내보내기 해서 사용하면 됩니다.

    • 뚜두 2019.03.26 13:28

      그럼제가 이미지서치 이용하는데 스크린샷은 그대로 두어도 되는건가요?
      ahk로 내보내기 하는 방법도 알려주시면 감사하겠습니다 ㅠㅠ

    • 남성 2019.03.26 21:59 신고

      file 메뉴 보면 export to AHK 라고 있습니다.

요즘 네이버 댓글 조작 사건으로 인해서 정치권이 시끄럽습니다. 드루킹 일당이 매크로 프로그램을 사용하여 대한민국 국민들이 가장 많이 사용하고 있는 포털인 네이버 기사의 댓글을 조작했다는 사건입니다. 네이버 댓글 조작 사건으로 인해서 보수 정당에서는 특검을 요구하고 있고 자유한국당의 김성태 원내대표는 최근까지 단식을 했었죠. 저는 개인적으로 댓글을 잘 안 봐서 이게 왜 이렇게 문제가 되나라는 생각을 했었는데, SBS 뉴스토리를 확인해 보니 많은 사람들이 댓글을 확인하고 그에 대해서 직간접적으로 영향을 받는다고 합니다. 그런데 사실 개발자 입장에서 생각해보면 이런 댓글 조작은 뒤늦게 발견은 가능하겠지만 막을 수는 없을 것으로 생각됩니다.

SBS 뉴스토리 ‘디지털 함정 인터넷 여론 조작’편을 보다 보니 어떤 사이트에 아이디를 자동으로 만드는 프로그램이 소개 되더군요. 바로 오토핫키 였습니다.

방송에 출연한 개발자 분은 scite4autohotkey 에디터 환경에서 Autohotkey 를 사용하여 한 사이트에 자동으로 회원에 가입하고 아이디를 만드는 데모를 보여주더군요. 방송에서는 이런 프로그램을 만드는데 한 30분 정도면 된다라고 소개를 했었는데 그마만큼 Autohotkey 는 생산성이 정말 좋은 언어라고 생각 합니다. 아래 화면과 같이 데모를 위한 간단한 GUI 프로그램도 단 몇 분만에 만들 수 있습니다.

방송에서는 Autohotkey 의 아주 일부 기능만 소개를 했는데 사실 오토핫키는 윈도우 환경에서 정말 많은 것들을 자동 할 수 있습니다. COM(Component Object Model) 도 사용할 수가 있어서 Microsoft Office 제품들도 자동화 가능하고~~

http://iamaman.tistory.com/458

http://iamaman.tistory.com/1625

http://iamaman.tistory.com/1996

아래 포스팅에서 소개한 바와 같이 이베스트증권에 xingAPI 를 사용하여 시스템 트레이딩에도 사용할 수가 있습니다.

http://iamaman.tistory.com/2224

저 개인적으로는 현재의 Autohotkey 는 수치 연산 분야를 제외한 대부분의 분야에서 효율적으로 사용이 될 수 있을 것이라고 생각됩니다.

윈도우 컴퓨터를 사용하는 많은 분들이 Autohotkey 를 사용해 보셨으면 하고 오늘부터 한번 공부 해 보시는 건 어떨까요? 여러분들의 컴퓨터 사용 업무 생산성이 팍팍 증가하는 것을 느낄 수 있을 겁니다.



C/C++ 코딩 시 변수끼리 값을 바꾸고 싶은 경우들이 있습니다.

 

이를 보통 변수 swap 이라고 하는데

 

a, b 라는 두 변수간에 값을 바꾸기 위해서는 보통 하나의 변수가 더 필요 합니다.

 

temp 라는 하나의 변수를 더 써서 다음과 같이 변경하는 게 일반적이죠. 비트 연산을 하지 않는 실수 타입들은 아래 방식으로 하는 게 맞을 겁니다.

 

temp = a;

a= b;

b= temp;

 

하지만 정수 타입의 경우 비트 연산을 이용하여 temp 라는 추가적인 변수 없이 swap 이 가능 합니다.

 

아래와 같이 Exclusive OR 연산을 세 번 사용하면 변수끼리 값을 바꿀 수 있습니다.

 

#define SWAP(a, b)  a ^= b; b ^= a; a ^= b;

 

위 매크로에 대해 다음과 같이 테스트 해 봤습니다.

 

#include <iostream>

using namespace std;

 

#define SWAP(a, b)  a ^= b; b ^= a; a ^= b;

int main()

{

    int x = 10;

    int y = 5;

    SWAP(x, y)

    cout << "x=" << x << " y= " << y << endl;

    return 0;

}


결과는 다음과 같이 x, y 값이 바뀐 것을 확인 할 수 있습니다.


x=5, y= 10



C/C++ 코딩 시 비트 연산은 굉장히 많이 하지만 자주 실수하는 부분입니다.

 

이런 비트연산들은 임베디드 시스템 설계시 자주 사용하곤 하는데 자주 사용하는 만큼 매크로로 만들어서 사용하면 편리하겠쬬.

 

제가 사용하는 비트연산 매크로는 다음과 같습니다.

 

필요하신 분들은 사용하시길~


MS word 의 자동 고침 방법에 대해 아래 포스팅에서 소개한 적이 있는데요.

 

오늘은 이렇게 만든 자동 고침 규칙을 백업 하는 방법에 대해 소개하려 합니다.

 

일단 MS Word 에서 파일 → 옵션에 들어갑니다.

 

아래 그림과 같이 보안센터 → 보안센터 설정에 들어가서 매크로를 사용할 수 있도록 설정 합니다.

 

다음으로 아래 주소에서 들어가서 AutoCorrect.zip 파일을 다운로드 받습니다.

 

http://word.mvps.org/FAQs/Customization/ExportAutocorrect.htm

 

파일도 올립니다.


AutoCorrect.zip



 

압축 해제 후에 AutoCorrect.dot 파일을 더블 클릭해서 실행 시키면~ 아래 그림과 같이 백업 관련 창이 뜹니다.

 

그럼 위 그림의 backup 버튼을 누르면 백업 파일이 생성되고~

 

다른 이름으로 저장하기 창이 뜹니다. 그럼 원하는 폴더에 해당 파일을 저장하면 됩니다.

 

보통 AutoCorrect Backup Document 라는 이름으로 생성되는데~ 아래 그림과 같이 생성되게 됩니다.

 

다음으로 백업한 자동 고침 규칙들을 불러 오기 위해서는 AutoCorrect.dot 파일을 실행 시킨 후에 restore 버튼을 클릭하고 이전에 백업했던 파일을 선택해 주면 됩니다.

 

오피스를 사용하면서 오피스를 설치 할 때마다 자동 고침을 다시 설정 한다면 굉장한 시간 낭비가 아닐 수 없습니다.

 

위에 설명한대로 자동 고침을 백업해서 설치할 때마다 불러와서 사용한다면 좀 더 효율적인 오피스 작업이 될 거라고 생각되네요~

 

 

참조 사이트

http://www.cnet.com/news/transfer-autocorrect-settings-to-a-new-pc/

http://word.mvps.org/FAQs/Customization/ExportAutocorrect.htm

http://support.microsoft.com/kb/926927


MS word를 사용하면서 아래에 설명한 그림 크기 자동으로 맞춤과 같은 몇 가지 VBA 매크로 들을 사용하는데요~

 

Office 를 설치 할 때 마다 이런 설정들을 다시 설정하고 하려면 곤욕이죠~

 

뭐 한 두개 라면 그리 문제 될 것 없겠지만 한 5개만 넘어가도 일일이 VBA 코드 넣어주고 단축키 설정하는게 정말 귀찮은 일이더군요.

 

그래서 찾아보니 MS word의 설정파일은 아래 주소에 저장됩니다.

 

C:\Users\자신의계정\AppData\Roaming\Microsoft\Templates\Normal.dotm

 

위 주소의 파일만 백업해 놨다가 사용하면 MS word를 설치할 때마다 설정을 다시 해줄 필요가 없더군요.


C/C++ 코딩시 매크로는 #define 을 사용하여 다음과 같이 정의하곤 합니다.

 

단순하게 상수등을 다음과 같이 정의하곤 하지만~

 

#define PI     (3.141592)

 

상수 뿐만이 아니라 매개변수등도 이용할 수가 있습니다.

 

사용법은 굉장히 단순한데요.

 

다음과 같이 원의 넓이를 구하는 매크로를 구성할 수 있습니다.

 

#define CIRCLE(x) ((x)*(x)*(PI))

 

매크로 정의시에는 항상 모든 부분들을 괄호를 이용하여 꼼꼼하게~ 묶어 주는 게 좋습니다. 그렇지 않으면~~ 까딱 잘못하다가 예상치 못한 결과를 얻을 수 있거덩여~

 

다음으로 # 연산자를 간단하게 소개하겠습니다.

 

이미 많은 분들이 아시겠지만, # 연산자는 매개변수를 문자화 하는 연산자 입니다.

 

다음과 같이 사용합니다.

 

#define STRING(x) #x

 

위와 같이 define 을 하고 STRING(Character) 하면~ " Character" 라고 문자열로 정의한것과 마찬가지 입니다.

 

이제 마지막으로 ## 연산자에 대해 소개해 드리죠~

 

아래와 같이 정의하고~

#define X(n) x##n

 

X(1) 이라고 하면~ 이는 변수 x1 을 입력한 것과 동일합니다. 즉. ## 연산자는 토큰들을 결합하는 역할을 하는거죠.

 

x1, x2, x3 …. 등과 같이 정의하고 싶다면~ ## 연산자를 이용해서 처리 할 수 있겠죠~

 

위 설명한 부분에 대해 간단하게 예제를 만들어 보았습니다.

 

#include <iostream>

 

using namespace std;

 

 

#define PI     (3.141592)

 

#define CIRCLE(x) ((x)*(x)*(PI))

#define STRING(x) #x

 

#define INT_X(n) int x##n = n

#define COUT_X(n) cout << "x"#n" = " << x##n <<endl

 

 

int main()

{

// 원의 넓이

cout << "반지름 4인 원의 넓이 : " << CIRCLE(4) << endl ;

 

// 매크로 # 연산자

cout << "# 연산자 예 : " << STRING(문자열로~) << endl ;

 

// 매크로 ## 연산자

 

INT_X(0);

INT_X(1);

INT_X(2);

INT_X(3);

 

COUT_X(0);

COUT_X(1);

COUT_X(2);

COUT_X(3);

 

 

return 0;

}

 

위 코드를 실행 시켜 보면 다음과 같은 결과가 나타납니다.


#, ## 연산자를 이용한 매크로는 디버그시 특히 유용하다 하더군요~ 


아래 주소에서 macro 에 대한 좋은 예들을 볼 수 있다.  

http://www.cprogramming.com/tutorial/cpreprocessor.html



+ Recent posts