관련 지식인 질문:https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=102&docId=313829165&page=1#answer1 작동설명:매크로 허용하고 파일을 열고우측상단 새로고침 아이콘을 누르면 네이버 증권에 접속하여 (PC버전보다 모바일사이트에 접속)Json 데이터를 수집하고이를 VBAJSON을 이용하여파싱하여엑셀 시트에 입력해준다. 코드는 해당종목으로 하이퍼링크가 추가되고전일비와 등락률에는 조건부 서식이 적용되고또한 아이콘 서식이 적용된다. PC버전 네이버 증권사이트에 접속하여HTML데이터를 HTML Object Library와 GetElementsByTagId 를 이용하여 파싱할 수도 있겠으나각 페이지별로 20여페이지를 로딩/파싱해야해서 불편하여이번에는 ..
VBA 검색 결과
아래처럼 휠 다이아그램 혹은 사이퍼 디스크 모양을 ppt에서 만들어 보겠습니다. 원 출처는 아래 지식인 질문입니다. https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=102&docId=303978262 다른 분께서 도너츠모양 챠트를 이용한 방법을 답변해주셨습니다.https://blog.naver.com/lemon-butter/221303482267 저는 VBA를 이용해서 만드는 방법을 소개합니다. 원래 Jobs라는 추가기능으로 만들어뒀던 매크로를 약간 수정했습니다. 먼저 첨부파일을 다운로드하여 열어주세요. 매크로 컨텐츠는 반드시 허용해야 합니다. 1. 빈슬라이드를 만들고Alt-F8이나 개발도구-매크로를 눌러서AddBlockArc1() 을 실행합니다.알파벳도 자동으로..
구글API나 MS API를 이용할 수 있겠으나 따로 승인절차가 있어서 여기서는 간단히 구글번역사이트의 결과HTML을 파싱하여 슬라이드를 번역하도록 해봤습니다. 사용법은 먼저 좌측 미리보기 창에서 원하는 슬라이드들을 모두 선택하고 나서 Alt-F8 이나 개발도구-매크로에서 TranslateSlides 매크로를 실행시키면 됩니다. 첨부파일을 열고 Alt-F11 로 열어보면 모듈에 매크로 소스가 있습니다. 여러 슬라이드 보기 상태에서도 똑같이 실행할 수 있습니다. 참고로 중국어, 러시아어, 아랍어 등을 시험삼아 넣어 봤습니다. 슬라이드가 많을 경우를 대비하여 진행상황을 알 수 있게 작업진행창(프로그레스바)를 넣었습니다. 작업결과입니다. 번역이 부드럽진 않지만 자동으로 번역이 되었습니다. MS자체 번역기능이나 ..
연초라 달력을 자동으로 생성하는 프로그램을 만들어 보았습니다. 년도를 입력하면 VBA로 계산해서12달의 달력을 슬라이드로 출력하는 PPT프로그램입니다. 이렇게 별다른 디자인이 없는 기본 달력입니다. 가장 큰 특징은 년도만 입력하면 그 해의 12달 달력을 자동으로 출력한다는 점입니다. 그리고 단 한개의 Shape도 모두 VBA를 이용해서 출력합니다. 그래서 미리 배경이미지나 그림 등을 편집한 상태에서 VBA함수를 돌리면 그림 위에 달력이 뜨게 됩니다. 심지어는 모든 슬라이드를 지운 상태에서도 달력이 생성됩니다. 슬라이드 마스터나 배경서식, 디자인 등에서 화면 디자인을 정하고 시작할 수도 있습니다. 빈슬라이드가 되었든 사진12장이 포함된 슬라이드가 되었든 첨부파일을 열고 Alt-F11을 눌러서 VBE 창을 ..
제목대로 폴더를 선택하면그 폴더 내의 파워포인트 파일목록을 사이즈와 함께 보여줍니다. 매크로 허용해주시고 실행하면그저 이런 빈화면이 나옵니다. 자동으로 폴더창이 뜨거나, 혹시 안뜨면아래 처럼 '폴더선택'을 클릭해서 파포 파일들이 들어 있는 폴더를 선택해줍니다. 해당폴더에 들어가서 확인을 클릭해주세요.ppt 가 많이 들어 있는 폴더가 좋겠지요. 파일이 아니라 폴더를 선택하고 확인하는 것에 유의하세요.이렇게 막대그래프로 파일용량을 보여줍니다.약간의 애니메이션도 추가했습니다.사진파일을 넣을수록 PPT 파일의 용량은 커지지요.가장 큰 파일을 100%로 기준삼아 보여줍니다.색깔이 빨간색에 가까울 수록 큰 용량의 파일입니다.소스상 RGB(255,125,125) 가 100% 로 가장 큰 파일의 색깔입니다. 파일은 확..
이 글은 VBA 에서 배열을 사용할 줄 아시는 분을 대상으로 합니다. 첨부한 슬라이드로 설명을 드립니다. 배열 중간에 뭔가 삽입해야할 때가 있습니다. 예를 들어 이렇게 3번 다음에 10번을 넣고 싶다면 어떨까요? Option Base 1dim i as Integerdim myArraydim copyArray()myArray = Array("1번선수","2번선수","3번선수", ...생략...) Redim Preserve myArray(Ubound(MyArray)+1) ' 배열크기를 1 증가시키고for i = Ubound(myArray) to 5 step -1 ' 끝에서부터 삽입위치까지 바로 이전 배열값을 차례로 복사myArray(i) = myArray(i-1)nextmyArray(4) = "10번선수" ..
VBA에서 int(Rnd * 5) 하면 0부터 4까지의 랜덤 숫자가 나온다. 1부터 5까지로 하려면Rnd*4+1로 해서 0부터 4까지 나온 수에 1을 더하면 된다. 그런데 랜덤 숫자는 바로 전에 나온 숫자와 중복된 숫자가 나올 수도 있다.이를 방지하는 방법을 생각해보자. 그저 단순히 이전 랜덤값을 저장했다가 비교할 수도 있지만중복된 수를 원천적으로 차단할 수는 없다. 그래서 배열을 이용해본다.5개의 배열에 1부터 5까지를 넣어 두고랜덤으로 배열을 섞어주는 것이다.어떤 값을 가진 배열들을 서로 섞는 것이라 중복된 수가 나올 수가 없다. 1부터 5까지의 수중에서 랜덤으로 추출한다고 가정하고소스 일부분을 보자 Private Num() As IntegerPrivate CurIndex As IntegerConst..
이진법(2진법)을 이용한 숫자(나이) 맞추기 마술을 PPT(ppsm)로 만들어 보았습니다. PPSM (파워포인트슬라이드쇼) 파일을 열어주세요. 매크로 사용을 허가해주시구요. 상대방에게 아무 숫자나 생각하라고 하세요. 혹은 상대방의 나이로 해도 되겠습니다. 예를 들어 15를 누르면 1부터 15까지의 수중에서 4차례의 질문만으로도 생각했던 숫자를 맞추게 됩니다. 1~15까지의 수를 4차례에 걸쳐서 생각한 숫자가 보이는지를 묻게 됩니다. 보이면(있으면) Yes, 없으면 No 를 눌러주세요. 1부터 31인 경우 5차례를 묻습니다. 1부터 127인 경우 7차례를 묻습니다. 만일 다른 임의의 숫자까지의 수중에서 추측하게 하려면 etc 를 누르세요. 300여개가 넘어가면 화면에 숫자 글씨가 다 보이지 않습니다. 25..
최근댓글