사진에 원본 크기로 보기 링크를 걸고 싶다는 열망으로 시작한 일이 드디어 끝을 향해 달려간다.
내가 글을 쓰는 방법은 이런 식이다.
1. 워드로 빈 문서를 열고 글의 앞 부문에 들어갈 서문을 작성한다.
2. 글의 제일 아래에 커서를 위치시키고 모든 사진을 한 번에 삽입한다.
3. 사진 사이에 엔터 넣기 매크로를 이용하여 사진 사이에 엔터를 넣는다.
-- 이 작업을 하는 이유는 사진이 모두 붙어 있는 경우 사진 크기를 변경할 때 워드에서 변경이 안 되는 버그가 있기 때문이고,
-- 사진 사이에 글을 편하게 입력하기 위함이다.
-- 방법은 http://seoddong.tistory.com/162 참조.
4. 사진마다 넣고 싶은 글을 넣고 글을 완성한 후 블로그에 게시한다.
5. 블로그에 들어가서 방금 올린 게시물의 편집하기 화면을 열고 아래 링크된 게시물의 방법을 이용하여 글의 제일 아래에 링크 걸린 사진을 삽입한다.
-- 엄밀하게 말하면 링크 걸린 사진은 아니고 사진을 이런 방법으로 삽입해야 그 사진에 자동으로 링크가 걸리는 것이다.
-- 자세한 방법은 http://seoddong.tistory.com/157 참조
6. 워드에서 블로그 글 쓸 때 메뉴에 보면 [기존 항목 열기] 메뉴가 있다. 이 메뉴를 클릭하여 방금 편집한 글을 워드로 다시 불러온다.
-- 이 때 불러올 글 목록이 보여지는데 항상 최신 몇 개만 보인다. 아직은 이 목록에 보이지 않는 글은 어떻게 불러오는지 모르겠다. 가끔 목록에 없는 글을 불러와야 할 때가 있는데 그 경우에는 블로그에서 그 글을 지우고 새로 다시 올렸다. ㅡ,.ㅡ;;
7. 제일 아래에 나오는 그림 링크를 사진 번호에 맞춰서 재정렬해준다. 이 부분은 별로 노가다도 아니고, 시간도 오래 걸리지 않아 그냥 수작업으로 작업한다.
이 작업을 할 때 그림 링크와 링크 사이에 엔터가 삽입되어 있는데 이 엔터를 제거해준다. 아래 그림처럼 그림 순서도 맞추고 빈 줄 없게 하면 된다.
다시 말하지만 이 그림 링크는 글의 제일 마지막 부분에 위치해야 하고 이 아래로 빈 줄이 있어도 안 된다.
여기까지 작업을 했으면 이제는 이 그림 링크를 각각 원래 자리로 보내야 하는데 사실 이 작업이 그림 수가 많을 때에는 진짜 노가다였다. 그래서 이제 소개하는 매크로를 만들게 되었다.
소스 설명을 하자면, 즉 매크로가 실행시키는 키나 순서를 설명하자면 아래와 같다.
이 매크로는 글에 삽입되어 있는 그림의 수만큼 반복된다. 다행히도 제일 아래에 있는 그림 링크는 그림으로 인식을 못 하고 원래 위치에 있는 그림들만 그림으로 인식한다.
(업데이트: 나중에 발견한 것인데 그림이 연속으로 붙어 있는 경우 제대로 작동하지 않을 수 있다. 그러므로 그림 뒤는 항상 엔터가 들어가야 한다.)
당연히 여기서 인식한 그림의 수와 제일 아래에 있는 그림 링크의 개수는 일치해야 한다. 안 그러면 엉뚱한 위치에 그림 링크를 가져다 붙이는 수가 있으니 주의해야 한다. 내 경우 이렇게 매치를 잘 못 시킨 경우는 초기 1회에 불과했다.
1. 아무튼 이 매크로는 커서를 글의 제일 마지막으로 보낸다. (마지막 그림 링크의 뒤가 될 것이다)
2. 그리고 그림 개수만큼 커서를 한 줄씩 위로 올린다. (첫 번째 그림 링크의 뒤가 될 것이다)
3. Home키를 눌러 문장의 제일 앞으로 보내고 Shift+End키를 눌러 문장의 제일 뒤까지 선택한 후 [잘라내기]를 한다.
4. 이제 커서를 첫 번째 그림의 바로 앞으로 보내고 잘라낸 그림 링크를 붙여넣는다. 그리고 Del키 두 번 눌러서 다음의 실제 그림을 삭제한다.
5. 위의 1~4 과정을 그림 수만큼 반복.
이게 매크로가 하는 역할이다.
실제 작동시켜 보니 그림이 150장 정도 될 경우 이 매크로가 완료되는데 몇 분이 걸리는 것 같았다.
아래는 매크로 스크립트다.
Sub ResetPic()
'
' ResetPic Macro
' Alt + 2
'
Dim ii As Integer
Dim oILShps As InlineShapes
Set oILShps = ActiveDocument.InlineShapes
ii = oILShps.Count
For jj = 1 To ii
' 제일 위의 그림 링크 잘라내기
Selection.EndKey Unit:=wdStory
Selection.MoveUp Unit:=wdLine, Count:=ii - jj
Selection.HomeKey Unit:=wdLine
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.Cut
' 항상 제일 위 그림이므로 index는 1이다.
oILShps(1).Select
' 제일 위 그림 자리에 링크 붙여넣기
Selection.Paste
Selection.Delete
Selection.Delete
Next
End Sub