관련: 지식인1, 지식인2 이번 미션은 엑셀에서 시트이름이 '양면3'이면 양면 3부 인쇄, '단면1'이면 단면 1부로 모든 엑셀 시트를 한꺼번에 일괄 인쇄하는 것입니다. VBA로 원하는 인쇄 매수대로 인쇄하는 것은 쉬우나양면 인쇄는 VBA로도 설정하기 까다롭습니다.한 가지 방법은 프린터를 하나 더 추가한 다음 양면으로 설정하고단면일 때는 프린터1을 현재 프린터(ActivePrinter)로 설정하고양면일 때는 프린터2를 현재 프린터(ActivePrinter)로 설정하는 방법이 있습니다. 여기서는 이 방법대신 새로운 프린터를 설정할 필요 없이 API를 이용해서 그때마다 양면/단면을 설정해서 인쇄하는 방법을 모색합니다. 아래와 같은 코드를 참고하였습니다. VBA7 환경(오피스2010이상)https://..
XLS+VBA 검색 결과
365 버전에는 엑셀 셀에 체크박스 즉, 확인란을 넣는 기능이 있습니다. 구버전에서는 이런 기능이 없어서 VBA로 삽입하는 방법입니다. 1. Active-X 체크박스 컨트롤 첨부파일을 열고 원하는 셀들을 선택하고 AddXCheckBox를 실행하면 아래처럼 삽입해줍니다.체크박스가 너무 작고 디자인이 너무 단조로운 단점이 있습니다.장점은 True와 False 값을 갖고 있어서 VBA등에서 값을 이용할 수 있습니다.디자인모드일 때는 도형이 선택만 되므로 디자인 모드를 풀어줘야 합니다. 액티브-X체크박스 코드입니다.더보기선택된 셀들에 Active-X 체크 네모 삽입Sub AddXCheckBox() Dim sht As Worksheet, shp As Shape, rng As Range Dim..
첨부파일에서 마우스 우클릭을 하면 Get Gemini Selected 와 Get Gemini All 메뉴가 뜹니다. Get Gemini Selected 는 현재 선택된 셀들에 대해 구글 Gemini 에게 [B1]셀에 주어진 프롬프트를 이용해서 명령을 보내서 돌아온 다시 쓴 문장을 원래 셀 오른쪽에 가져옵니다. Get Gemini All 은 B열에서 B1을 제외한 모든 B:B셀의 문장에 대해 [B1]의 프롬프트 명령을 실행해서 답변 결과를 각 셀의 오른쪽에 가져옵니다. 먼저 구글 API가 필요합니다. API 키 가져오기 | Google AI Studio 위 사이트에 자신의 구글 계정으로 로그인해서 'API 키 만들기'를 클릭하여 API 키를 생성하고 복사합니다.AIza~로 시작하는 40자리 알파..
365 엑셀의 새기능인 셀안의 그림(PictureInCell) 기능입니다.마치 아래 한/글에서 그림을 글자 취급하는 것처럼엑셀 시트에서 그림을 셀안에 종속적으로 삽입할 수 있습니다.글자처럼 간주되어 정렬도 가능합니다. 우클릭해서 '셀 위에 놓기'를 선택해서 일반 그림으로 변경할 수도 있습니다. 반대로 일반 그림을 '셀에 배치'를 선택해서 '셀안의그림'으로 바꿀 수도 있습니다. 셀에서 사용자 함수인 Image 를 이용할 수 있습니다.=IMAGE(source, [alt_text], [sizing], [height], [width]) 세번째 인수:0 이미지를 셀에 맞추고 가로 세로 비율을 유지합니다. 1 셀을 이미지로 채우고 가로 세로 비율을 무시합니다. 2 셀 경계를 초과할 수..
Dictionary 를 이용해서 단어의 빈도수 통계를 내볼 수 있습니다.Sheet1 에 아래와 같이 텍스트가 들어 있습니다.Alt+F8로 CountWords 매크로를 실행하면 아래처럼 각 단어의 빈도수를 Sheet2 에 알려줍니다.코드는 아래와 같습니다.Alt+F11 창 도구 > 참조에서 Microsoft SCripting Runtime 라이브러리를 체크해주세요.더보기Option ExplicitSub CountWords() Dim sht1 As Worksheet, sht2 As Worksheet Dim rng As Range '도구-참조에서 Microsoft Scripting Runtime 체크 필수 Dim d As Dictionary 'Dim d as Object ..
예를 들어 당근 사이트처럼 이미 UTF-8인코딩인 경우 WinHttp 로 HTML 문서 내용을 가져오면인코딩이 깨집니다. 이런 경우 인코딩 오류를 예방하거나 처리하는 방법을 소개합니다. 인코딩이 깨질 때첫번째 방법: WinHttp 대신 XMLHttp 혹은 ServerXMLHttp를 이용해서 접속하기아래는 Late Binding이지만 Early Binding하려면 도구 > 참조에서 XML 6.0 등의 라이브러리를 추가합니다.Function GetDocumentByURL(URL) Set winhttp = CreateObject("MSXML2.XmlHttp") Set document = CreateObject("Htmlfile") winhttp.Open "GET", URL, False..
위처럼 의료기기를 검색하는 사이트( https://emedi.mfds.go.kr/portal )의 검색결과를 엑셀로 가져오는 예시입니다. 여러가지 항목으로 검색할 수 있는데일단 명칭(query2)과 업체명(entpName) 으로 검색하는 예시 파일을 만들어 보았습니다. 첨부파일 매크로 허용해서 열고명칭이나 업체명을 입력하고 시작페이지 ~ 마지막 페이지를 입력하고마우스 우클릭해서 getMed 를 실행합니다.위와 같이 화면입니다.내부적으로 xmlHttp를 이용해서https://emedi.mfds.go.kr/search/data/list?chkList=1&nowPageNum=1&tabGubun=1&query2=브러쉬&entpName=신원&chkGroup=GROUP_BY_FIELD_01&pageNum=1&se..
구글 검색결과 링크를 가져오려면http를 이용해 구글 검색 url로 접속 후 돌아온 html을 파싱해서 a태그를 추출하는 직접 파싱하는 방식과정식 구글 API를 이용하는 방법이 있습니다. 안정성을 위해 추천하는 방법은 후자입니다.아래는 구글 Custom Search API를 이용하는 방법에 대한 샘플입니다.먼저 Json 데이터를 파싱하기 위한 클래스로 JsonBag 클래스를 이용합니다. https://www.vbforums.com/showthread.php?738845-VB6-JsonBag-Another-JSON-Parser-Generator&p=5366455&viewfull=1#post5366455위 링크에서 JsonBag Treeview.zip 파일을 다운 받아서 JsonBag.cls 파일을 압축..
최근댓글