Tistory 블로그를 운영하면서 FHD 사이즈로 캡쳐했는데 블로그에서 사진 오른쪽이 잘리는 현상이 발생했다.
글을 주로 워드로 작성해서 올리는데, 사진이 잘리니까 블로그 크기에 맞춰서 사진을 40% 사이즈로 재조정해서 올려왔었다.
그런데 곰곰이 생각해보니 이건 너무 노가다 미친 짓이라고 판단되었다. 그래서 구글링을 해보니 tistory의 style.css에서 이미지 부분에 max-width 옵션을 주면 사진 크기에 관계없이 바로 해결이 된다는 것을 알았다.
그래서 나도 style.css에 다음 두 태그를 찾아서 수정해주었다.
imageblock {max-width:100%;}
img {max-width:100%;}
그랬더니 바로 사진 크기 문제는 해결되었다.
자. 그럼 그 동안 올렸던 모든 글의 사진 사이즈를 원복해야겠다는 생각이 들었다. 그런데 사진을 원복하려니 이거 또한 개 노가다가 아닌가?
어딘가 매크로가 있을꺼야. 구글링을 해보니 역시 워드 매크로도 있었다.
오래 찾아보지는 않았지만 워드에서 모든 사진의 크기를 특정 크기로 바꾸는 VBA 스크립트를 발견했다.
그 스크립트를 참고하여 다음과 같은 매크로 스크립트를 만들었다.
내가 스크립트를 구한 글은 http://iamaman.tistory.com/592 이다.
나도 나름대로 다시 설명하자면,
1. alt + F11을 눌러 VBA 편집 창을 띄운다.
2. 모든 워드 문서에서 이 매크로를 불러 쓰고 싶으면 왼쪽 트리 중, Normal > Microsoft Word 개체 > ThisDocument를 선택하고 이 때 열리는 창에 스크립트를 작성 후 저장한다.
3. 아래는 여기에 작성하면 되는 사진 크기 원복시키는 스크립트이다.
위 그림에 다른 스크립트도 보이지만 일단 원복 시키는 경우에는 모든 스크립트를 지우고 아래 스크립트만 붙여넣으면 된다.
잠깐 스크립트를 설명하자면,
ActiveDocument = 현재 편집중인 워드 문서
Shapes = 사진 같은 개체를 말하는 것 같은데, 일단 내가 넣은 사진은 이 Shapes 개체에 속하지 않았다.
InlineShapes = 인라인 개체를 말하는 것 같다. 즉 개체가 글자처럼 인식되는 경우에 여기에 해당되나 보다. 그리고 내가 삽입한 그림들도 모두 이 개체에 속했다.
Shapes와 InlineShapes는 둘 다 개체를 다루기 때문에 내부 메소드나 속성이 같을 줄 알았는데 알고 보니 달라서 약간 헤매었다.
원복시킬 때 사용하는 멤버는 ScaleHeight, ScaleWidth인데 이 멤버가 Shapes에서는 메소드였고, InlineShapes에서는 속성이었다.
사실 내 경우에도 InlineShapes만 사용되었기에 Shapes 개체에서도 원래 크기로 원복이 되는지는 확인하지 못 했다.
아무튼 컴파일 자체는 오류 없이 잘 되니까 뭐~
Sub Figure_Attributes()
Dim oShp As Shape
Dim oILShp As InlineShape
For Each oShp In ActiveDocument.Shapes
With oShp
'그림을 원래 크기로 원복
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
End With
Next
For Each oILShp In ActiveDocument.InlineShapes
With oILShp
'그림을 원래 크기로 원복
.ScaleHeight = 100
.ScaleWidth = 100
End With
Next
End Sub
4. 이렇게 작성 후 저장하고, 단축키나 단축 버튼으로 등록하고 사용하면 된다.
WORD 2013 기준
단축키는 파일 > 옵션 > 리본사용자 지정 > 바로가기 키 : 사용자 지정 > 매크로 에서 설정 가능하며,
단축버튼은 파일 > 옵션 > 빠른 실행 도구 모음 > 명령 선택 > 매크로 에서 설정 가능하다.