관련: 지식인 특정 파일에서 선을 그리면 선이 한쪽으로 치우친다는 질문입니다. 파일을 열어 테스트해보니 화살표의 선이 한쪽으로 치우치고 도형 윤곽선을 늘리면 안쪽으로 채워집니다. 파일을 첨부하셔서 내부 xml을 분석해보았습니다. 아마도 파워포인트가 아닌 다른 프로그램에서 편집했었던 것으로 보입니다. PPT파일에서 선, 텍스트 상자 혹은 도형 개체의 기본 스타일 속성은 테마에 들어 있습니다. 특히 pptx파일은 ZIP 압축파일 형식인데 내부에 XML파일형태로 슬라이드나 슬라이드 마스터, 그리고 테마 등이 들어 있습니다. 첨부하신 파일 내부의 선 도형을 복사해서 정상 파일에 원본서식 유지로 붙여 넣고 두 개체의 xml속성을 서로 비교해보면 서로간의 차이점을 알 수 있습니다. pptx 파일을 저장하고 ..
PPT+VBA 검색 결과
미리캔버스 디자인을 텍스트 편집 가능 옵션으로 다운로드 받아서 슬라이드 마스터에 들어가보면 디자인 틀이 왼쪽 상단에 치우쳐져 있습니다. 슬라이드 크기도 16:9인 경우 50.8cm * 28.575 로 조금 큰 사이즈입니다. 글꼴 또한 영문이 기본 폰트이고 한글 글꼴은 알 수 없는 글꼴이름입니다. 더불어서 글머리 기호 또한 65535 문자로 물음표로 나오게 됩니다. 이런 경우 첨부한 VBA 매크로를 이용하면 슬라이드 마스터를 화면에 가득차게 바꾸고 기본 한글 글꼴과 영문 글꼴을 '맑은 고딕'으로 바꾸며 글머리 기호를 8828 기본 가운뎃점으로 바꿉니다. 더보기 Option Explicit Dim SW!, SH!, SW1!, SH1! Sub ResetSlideMaster() Dim pres As Presen..
관련: 지식인 답변 폴더내 여러개의 ppt파일 있을 때 파일을 합치기보다는 슬라이드에 각 파일로 하이퍼링크를 추가해서 일종의 목차를 만들고 싶은 경우입니다. 일단 두 가지 방법이 있겠습니다. 1. 개체로 삽입 아래처럼 삽입 > 개체에서 파일로부터 만들기 > 찾아보기로 pptx파일 선택하빈다. 연결에 체크하고, 아이콘으로 표시에 체크하고 아이콘 변경을 누르고 아이콘 아래에 표시될 제목을 입력하고 확인을 누릅니다. 개체로 삽입한 경우 연결에 체크해제하면 pptx파일 내부에 포함할 수 있습니다. 또한 슬라이드 쇼를 실행하지 않고 일반 화면에서 더블 클릭으로 열 수 있습니다. 개체 삽입 결과: 2. 하이퍼링크로 삽입 도형이나 그림, 아이콘을 하나 넣고 삽입 > 링크> '기존 파일'에서 해당 pptx를 선..
디자인 > 슬라이드 크기에서 예를 들어 A4가로 크기를 16:9가로로 사이즈를 바꿀 때 '최대화'를 적용하면 개체의 위 아래가 슬라이드 세로 높이를 벗어나고 '맞춤확인'으로 선택하면 슬라이드 좌/우에 여백이 생깁니다. 이럴 때 아래 VBA를 이용해서 일괄로 개체의 가로, 세로 크기와 위치를 슬라이드 크기에 가득차게 맞춤 조정해 보세요. A4프리젠테이션에서 Alt-F11 누르고 삽입 > 모듈을 추가하고 아래 코드를 붙여넣고 F5로 실행하면 현재 프리젠테이션을 복제하고 나서 슬라이드 크기를 16:9로 만들고 개체의 크기를 새 슬라이드에 가득차게 계산해서 변경시켜줍니다. (만들어질 슬라이드의 크기를 A4나 4:3으로 바꾸려면 .SlideSize 를 주석을 참고하여 수정할 것!) Option Explic..
관련: 지식인 VBA를 이용해서 일반 Shape 개체내의 텍스트에는 아래처럼 윤곽선 서식을 적용할 수 있습니다. With shape.TextFrame2.TextRange.Font.Line .Visible = msoTrue .ForeColor.RGB = RGB(255, 127, 127) .Weight = 0.2 End With 그러나 표(테이블)의 텍스트에 위 내용을 적용하면 실제로 적용이 되지 않습니다. 물론 사용자가 마우스로 서식을 적용하면 되긴 하지만 VBA로 이런 작업을 자동화할 수 없게 됩니다. 셀안의 텍스트에 윤곽선 지정, 글자에 그라디언트 색깔 채우기, 3D효과 적용 등이 VBA로는 불가능하게 되어 매우 불편합니다. 테이블(표)의 Shape 개체는 일반 슬라이드의 Shape 개체와 똑같지 않고..
관련: 지식인 파워포인트 슬라이드 페이지번호를 넣을 때 "현재페이지 / 총페이지"로 하는 경우입니다. 1. VBA로 슬라이드마다 '현재페이지 / 총 페이지' 형식으로 페이지번호를 필요할 때마다 넣는 방법 Alt-F11 누르고 메뉴에서 삽입> 모듈 추가한 다음 아래 코드를 넣고 F5키나 일반 슬라이드편집화면에서는 Alt-F8로 매크로를 실행합니다. 아래 매크로는 특히 원하는 페이지부터 1페이지로 시작할 수 있습니다. .Text = (sld.SlideIndex - PageStart + 1) & " / " & (sld.Parent.Slides.Count - PageStart + 1) 이 부분을 수정하면 원하는 형태로 슬라이드 번호 삽입이 가능합니다. 더보기 '시작 페이지 지정 Dim PageStart As..
VBA에서 텍스트를 URLEncode/URLDecode 하는 것은 아래 함수를 이용할 수 있습니다. Function ENCODEURL(varText As Variant, Optional blnEncode = True) Static objHtmlfile As Object If objHtmlfile Is Nothing Then Set objHtmlfile = CreateObject("htmlfile") With objHtmlfile.parentWindow .execScript "function encode(s) {return encodeURIComponent(s)}", "jscript" End With End If If blnEncode Then ENCODEURL = objHtmlfile.parentWind..
관련 답변: 지식인 엑셀 연결할 필요 없이 파워포인트에서 직접 해당사이트의 데이터를 크롤링해오도록 했습니다. 네어버 finance의 경우 각각의 데이터를 JSON형식으로 서버에서 받아옵니다. 달러 환율 JSON데이터 두바이유 JSON데이터 위와 같은 축약된 형태의 데이터형식이 JSON으로 이 데이터 형식은 서버자료를 가져올 때 주로 사용됩니다. VBA에서는 JSONConverter 변환 라이브러리를 이용했습니다. (Dictionary를 사용했기 때문에 도구>참조에서 Microsoft Scripting Runtime 체크 필요함) 서버의 데이터를 가져올 때 Set JSON = ParseJson(JSON문자열)로 파싱해서 JSON("속성1")("속성2") 혹은 배열인 경우 JSON(1)("속성1")(..
최근댓글