관련: VML경로편집, 링크 VBA로 이동경로 특히 직선이나 간단한 도형 애니메이션을 추가하는 문법 3가지 1. 일단 아래로 내려가는 직선 애니메이션을 넣고 VML 경로를 수정하는 방법 Sub AddVML() Dim sld As Slide Dim shp As Shape Dim eft As Effect Dim ani As AnimationBehavior Set shp = ActiveWindow.Selection.ShapeRange(1) Set sld = shp.Parent Set eft = sld.TimeLine.MainSequence.AddEffect(shp, msoAnimEffectPathDown, , msoAnimTriggerAfterPrevious) eft.Timing.Duration = 0.25 ..
PPT+VBA 검색 결과
관련: 지식인 엑셀에서 만든 차트를 복사해서 파워포인트 슬라이드에 연결로 붙여넣고 사용하다가 파워포인트에서 차트 데이터를 변경하면 원본을 변경저장할 지 확인하고 저장을 선택하면 잘 업데이트가 됩니다. 하지만 따로 엑셀로 원본 엑셀파일을 열어서 시트이름을 변경하고 저장한다면 파워포인트 파일에서는 이런 변경사실을 알지 못해서 다시 데이터를 편집하려고 하면 차트의 내용이 나오지 않게 됩니다. 이 때 원본 차트의 시트이름을 복구하는 코드입니다. 더보기 Option Explicit Sub reLinkChartData() Dim shp As Shape Dim srs As Series Dim srscol As SeriesCollection Dim Sheet1Name As String Dim sData As Strin..
VBA 처리과정도 마우스로 슬라이드의 표(테이블)을 복사해서 엑셀 시트에 붙여넣는 것과 유사합니다. 테이블.Copy 해서 시트의 셀.Paste 하거나 시트.PasteSpecial로 붙여넣습니다. 테이블이 여러개 일텐데 아래와 같은 샘플을 만들었습니다. VBA코드: 더보기 'Copy the table content on each slide to Excel sheet Option Explicit Const TextOnly As Boolean = False Sub CopyTableToSheet() Dim xl As Object 'New Excel.Application Dim wb As Object 'Excel.Workbook Dim sht As Object 'Excel.Worksheet Dim rn..
VBA에서 두 도형의 교차 혹은 충돌여부를 판단할 때 단순한 사각형의 경우 AABB 방식으로 두 도형의 좌표와 넓이와 높이를 비교해서 알아낼 수 있습니다. 하지만 도형이 회전한 경우나 사각형이 아닌 복잡한 도형의 경우 AABB방식은 실패합니다. 그래서 두 도형간에 선을 그어서 교차하는 점이 몇개인지 검사하거나 다른 복잡한 알고리즘들을 사용합니다. 두 도형간의 교차 여부를 알려주는 프로그램언어도 있지만 VBA에서는 도형의 충돌체크가 간단하지 않습니다. 이 경우 시간은 좀 걸릴 수 있지만 간단히 두 도형을 도형병합(교차)을 이용해서 교차시켜보고 나오는 도형이 있는지 검사해본다면 쉽게 충돌여부를 알아낼 수 있습니다. (단, 도형병합을 지원하는 2010버전 이상이어야겠습니다.) 위의 그림에서 왼쪽 두 번개는 충..
VBA로 텍스트를 일괄로 변경할 때 일반적인 도형 뿐만아니라 그룹도형 내부의 자식 도형들, 차트내의 차트제목, 계열제목, 데이터라벨, 스마트 아트 내부 텍스트, 테이블(표)의 텍스트 등 여러가지 상황을 고려해서 만들기 어렵습니다. 각 개체마다 텍스트에 접근하는 방식이 약간식 달라서 간단히 만들기 쉽지 않습니다. 여기서 여러가지 개체의 텍스트에 접근하는 예시를 보여주고자 합니다. 일단 테이블과 스마트아트, 그리고 차트개체에 집중해서 텍스트에 접근해보겠습니다. 특히 특정색깔의 텍스트를 다른색깔로 일괄 변경하는 작업을 예시로 들겠습니다. 아래와 같이 슬라이드가 있을 때 표 내부의 텍스트 색, 차트 내부의 텍스트색, 스마트 아트 내부의 텍스트 색에 접근합니다. TextFrame.TextRange 보다 TextF..
관련: 지식인 차트를 복사해서 다른 데이터 영역을 반영하고 싶을 때 수작업으로 하려면 차트를 계속 복사하고 '데이터 선택'을 눌러서 다른 셀 영역을 계속 선택해주면 됩니다. 이 때 만일 변경할 데이터가 너무 많다면 VBA를 이용해야겠습니다. 마치 한글에서 메일머지 기능을 이용하듯이 엑셀 양식에 데이터를 넣어두고 파워포인트에는 차트를 복사해서 양식을 갖춰 놓은 상태에서 매크로로 슬라이드(차트)복사 후 엑셀 데이터 업데이트 작업을 일괄 처리합니다. 차트개체는 가로세로 방향, 추가된 개체, 서식 등이 모두 다르기 때문에 상황에 따라 변수가 있을 수 있지만 주된 흐름은 아래 방법을 이용해서 처리할 수 있겠습니다. 여기서는 엑셀에 데이터가 4개의 세트가 있고 파워포인트에 복사된 차트('Chart 1'이라는..
텍스트를 복사해서 Ctrl-Alt-V로 이미지로 붙여넣을 수 있는데요 이미지는 비트맵과 벡터방식 2가지가 있습니다. JPG, PNG는 점을 찍는 비트맵방식인데 확대하면 깨지는 단점이 있지만 SVG,EMF 등은 선을 그리는 벡터방식이라 확대해도 화질이 유지됩니다. 그런데 SVG는 하위버전에서는 지원하지 않기 때문에 호환이 염려되고 EMF는 텍스트 폰트를 선으로 변환하지 않는 문제가 각각 있습니다. 그렇다면 여기서 가장 좋은 선택은 텍스트 글자를 파워포인트 도형으로 변환하는 것입니다. 그 방법은 바로 텍스트 상자에서 임의의 빈 텍스트상자를 도형병합(빼기)를 하는 방법입니다. 아무 빈 텍스트 상자를 추가하고 원하는 텍스트상자에서 이 빈 도형을 빼는 것입니다. 텍스트상자나 도형에서 빈 텍스트상자를 빼..
관련: 지식인 온라인 구글 문서를 슬라이드에 띄우고 싶은 경우입니다. 구글 슬라이드나 스프레드 시트를 파워포인트 슬라이드에 가져오려면 일단 문서가 공유되어 있어야 합니다. 그리고 슬라이드에서 구글 시트/슬라이드를 보여주려면 웹브라우저 개체나 추가기능을 이용해야 합니다. 1. 먼저 구글 문서의 웹공유 주소를 생성합니다. 일반 공유 주소는 보안제한이 있어서 웹브라우저개체에서 오류가 나므로 완전히 공개된 웹출판(Publish) 주소가 필요합니다. 예를 들어 구글 스프레드시트에서 File메뉴에서 > Share(공유) > 웹공유(Publish to Web) 을 누르고 Link 나 Embed 탭에서 문서전체나 특정 시트를 선택해서 Publish (웹출판공유)합니다. 그리고 공유 주소를 복사해 둡니다. 2..
최근댓글