블로그 이미지
이비그치면

태그목록

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

워드 문서(MS Word Document)에서 밑줄(Underline) 단어를 추출하는 VBA 모듈입니다


워드로 작성된 영어 문서나 한글문서등에서 의미가 분명치 않거나

모르는 단어등을 밑줄쳐 놓았다가

문서범위를 지정하여 그 해당범위내에서 발견된 밑줄단어들을

엑셀 쉬트(텍스트문서등)로 옮겨놓습니다.

사용방법은

위의 밑줄단어추출.docm을 오픈합니다

밑줄단어를 추출하려는 워드문서(아래의 샘플문서)를 Open 합니다

(따로오픈하지않고 지금 매크로 문서에서 엽니다)

오픈한 문서에서 범위를 지정합니다(아래 그림처럼)

다시 매크로문서로 돌아와서 밑줄단어추출 버튼을 누릅니다

엑셀문서에서 추출된 단어를 확인하고 저장합니다 

테스트해볼 수 있는 샘플문서입니다

 

 

앞의 엑셀 영어 단어장 자동으로 만들기에 동의어 및 반의어 리스트를 추가하였다

http://oneone59.tistory.com/entry/%EC%97%91%EC%85%80-%EC%98%81%EC%96%B4-%EB%8B%A8%EC%96%B4%EC%9E%A5-%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0


 MS 워드의 SynoymInfo를 통해서 동의어와 반의어를 가져오는 부분이 소스에 추가되었다
 



사용하는 방법은 전과 동일하니 위의 링크를 참조하시기 바라고 실행결과는 아래와 같다


HTML TAG 제거(정규식의 힘)

2012. 1. 3. 19:05 | Posted by 이비그치면

정규식(Regular Expression)은 UNIX에서 주로 시스템 관리자가 시스템에서 제공하는
여러 텍스트 데이타들을 쉽게 처리하기 위한 용도로 많이 사용되지만  주요한 스크립트 랭귀지(PERL, PYTHON등)에서도 텍스트를 처리하는데 아주 유용하게 사용된다.

텍스트데이타인 웹데이타를 처리하는 웹프로그래밍영역에서도 이 정규식은 프로그램이 처리할 많은 노력들을 상당히 줄여주는 좋은 웹 프로그래머들의 무기이다

웹페이지는 수많은 HTML TAG와 텍스트 데이타들로 구성되어진다 
다음의 문자열 데이타에서 HTML TAG를 제거하고 기사 데이타만을 추려내야한다고 하자

<strong>노르웨이서 청어 수만마리 떼죽음<br />미국서 수천마리 검정지빠귀 죽어<br /></strong><br />새해 벽두부터 동물의 떼죽음에 관심이 쏠리고 있다.<br /><br />지난해 미국 아칸소에서 수천마리 검정지빠귀가 죽어 길바닥에 즐비하게 깔린 데 이어 노르웨이 해변에서 청어가 떼 죽음 당해 해변을 가득 덮은 모습이 전해지면서 충격을 주고 있다. <br /><br />이에 일부에서는 세계 종말의 또 다른 전조라는 지적도 나오고 있다. <br /><br />3일 영국의 데일리 메일 보도에 따르면 청정국가인 노르웨이 북부 노드레이사에 위치한 크바에네스 해변에서 20t 분량의 청어 수만마리가 떼죽음을 당한채 발견됐다.<br /><br />죽은 물고기 떼를 처음 발견한 얀 피터 요르겐슨(44)은 &ldquo;생선 썩는 냄새로 악취가 코를 찔렀다&rdquo;라며 두려움을 느꼈다고 고백했다.<br />

Sub test()
Dim regEx
Set regEx = New RegExp

sText = "<strong>노르웨이서 청어 수만마리 떼죽음<br />미국서 수천마리 검정지빠귀 죽어~~....................................두려움을 느꼈다고 고백했다.<br />"
 
regEx.Pattern = "<[^>]+>"  '--- html tag match를 위한 정규식
regEx.IgnoreCase = True
regEx.Global = True
sText = regEx.Replace(sText, "")
Debug.Print sText
End Sub

VBA에서 실행하려면 도구-->참조에서 
"Microsoft VBScript Regular Expressions 5.5"  를 선택하고 실행하여야한다

실행결과를 VBA의 직접 실행창에서 확인해보면
깔끔하게 HTML TAG가 제거된 기사 데이타를 확인할 수 있다
 

단어장 웹사전(네이버 사전) 이용하여 만들기

2011. 12. 23. 18:01 | Posted by 이비그치면
단어장을  HTML 파일로  작성하는 엑셀 VBA 프로그램이다


앞서 만든 오프라인 단어장도 나름대로 괜찮긴 하지만 네이버사전을 이용한 단어장도
한단어에 대한 자세한 설명과 용례를 살필수있어서 유용한것 같다

HTML 파일의 읽기를 지원하는
아이패드의 굿리더(GoodReader)나 안드로이드 모바일 디바이스의 문리더(MoonReader)등을 이용하면 이동중이라도 자기가 작성하여 공부한/공부할 단어장을 볼수있어서 편리하다

네이버 사전 웹페이지를 가져오기 위하여
WinHttp를 사용했다
가져온  데이타(WinHttp.responseBody)의 한글 처리에 약간의 어려움이 있었다

웹페이지를 긁어오거나 가져와서 처리하실 분이나
웹사이트의 특정 게시물들을 스크랩해둘분들은 참조하시기 바란다

다음의 style 파일을 열어 C:\에 압축해제한다.
4개의 Style Sheet Document (CSS 파일이다)
HTML에 스타일을 적용하는 style sheet 문서이다


위의 엑셀파일을 열어 그림과 같이 단어를 입력한후 단어들을 반드시 영역선택한다 
단어장만들기 버튼을 클릭한다



단어장 만들기 버튼을 눌러서 실행이 안되고 에러가 나면  ALT+F11 혹은
엑셀 2007에서 리본메뉴의 개발도구 탭을 클릭하여 제일 좌측의 Visual Basic 클릭
VBA창을 열어  창이 열리면 도구-->참조 하여 아래처럼 된후
다음 참조를 찾아 체크하여 참조추가를 해주어야 한다

Microsoft HTML Object Library
Microsoft WinHTTP Services, version 5.1
Microsoft ActiveX Data Objects 2.5 Library
Microsoft VBScript Regular Expression 5.5



정상적으로 실행되면 C:\  에 다음파일이 생성된다
단어장_YYYYMMDD_HHMMSS.htm(예:단어장_20111228_140010.htm)
파일을 클릭하여 열면



  단어들을 표에 보관해서 나중에 참조하려면  표로 옮겨두기 버튼을 누른다


 

단어장 자동 작성
범위 지정 가능
사지선다 문제 출제(단어로, 뜻으로, 문제 랜덤순출제)가능
정답확인 및 오답 표시 기능
문제 프린트 가능
개인 DB 학습내용 기록
 
아래에 만든 단어장 프로그램에 테스트기능(사지선다형 문제출제)을 추가한 프로그램이다


파일을 다운받아 열면 



단어들을 입력후 위그림과같이 선택한 후 단어풀이 클릭



문제출제유형을 선택(단어 혹은 설명)---> 문제작성 클릭
Sheet2로 이동해서 보면 



다음과 같이 체크 후 


다시 Sheet1으로 가서 정답확인 클릭 


정답은 노란색으로  오답은 체크하는 칸에 빨간색으로 하이라이트된다

학습기록은 SQLite DB에 학습내용(단어,단어출처, 의미, 테스트일자, 정오답구분)을 기록한다







 

혹시 방문하는 분들중에 교회 방송실에서 섬기시는 분들이 있는지 모르겠다

요즘은 목사님의 설교중 인용하시는 성경말씀을 바로 PPT로 띄워주는 교회가 많이 있다
또 찾아보니 상용으로 만들어져 있는것도 같다

내가 다니는 교회 목사님은 설교중에 성경말씀을 많이 인용하시는 편이다
그래서 방송실에서 이 PPT를 사전에 미리 만들어 준비하는게 상당한 일이다

그래서 수고하시는 분들을 위해 작은 도움이나마 될까해서
엑셀을 활용해서 성경구절을 자동으로 찾고 이를 PPT로 만들어주는 엑셀 VBA 프로그램을
제작해보았다

프로그램은 공개하니 도움이 되었으면 한다

 

excel_bible.xlsm



프로그램 실행후에 파워포인트 출력은 아래그림과 같다


여러가지로 활용할수 있는 프로그램이니 VBA를 공부하시는 분들도 참조하시기 바란다
 프로그램에서 사용하는 성경DB는 

요즘 안드로이드 모바일기기에서 많이 사용되는 SQLite이다

성경 DB에는 현재 개역개정, NIV버젼이 들어가 있다

성경DB는 개인적으로 필요해 온라인성경등을 참조해 DB로 만들었지만 저작권문제때문에
블로그에 올리지 못함을 양해해주기 바란다

그러나 프로그램구동을 위해서는 반드시 필요한 부분이라서
요청을해주시면 보내드리려고 한다

 SQLite는 iphone 이나 android 같은 모바일 환경 뿐 아니라 데스크탑 운영체제의 응용프로그램에서도 많이 사용되는 파일기반 RDB다. 2000년에 Richard Hipp 박사에 의해 개발된 무료 DB엔진이다. 복수의 사용자를 지원하지 않는 대신 C언어로 작성되어서 속도가 빠르다. 
 

그래서 프로그램실행을 위해서 먼저 SQLite를 설치하여야 한다
 
설치는 별도의 설치과정이 없이 다운받은 파일들을 적당한 폴더로 압축해제만 해놓으면 된다 

--- 먼저 아래의 주소에서 다운로드 

www.sqlite.org

Download로 들어가  
 Precompiled Binaries For Windows 에 있는 3개의 zip 파일을
다운받아 c:\sqlite3 폴더에 압축해제한다 

  --- PATH 설정
Windows 7 에서
    시작 -> 제어판 -> 시스템및보안 -> 시스템 -> 고급시스템설정 -> 환경변수
     
 

XP에서
     시작 -> 제어판 -> 시스템 -> 고급 -> 환경변수 

     시스템변수의 Path 항목을 선택후 편집버튼을 누르고  오른쪽끝에
      ;c:\sqlite3  추가 

 -- 엑셀에서 ODBC 로 DB 접속하기 위해 sqlite odbc 드라이버 설치
      http://www.ch-werner.de/sqliteodbc/  
     위 사이트에 접속하여 sqliteodbc.exe 다운로드후 실행하여 설치

-- 사용할 DB 와의 연결을 위한 설정
 Windows 7 : 시작->제어판->시스템및보안->관리도구->데이타원본(ODBC)
 
XP              : 시작->제어판->관리도구->데이터 원본(ODBC)


추가 버튼을 누르면 아래의 화면


**
SQLite3 ODBC Driver 선택,  마침 버튼 누르면


위와 같이 입력하고 OK 버튼 누르면


녹색으로 보이면 정상적으로 ODBC 연결이 된것이다

이제 엑셀 VBA 프로그램을 돌리기위한 준비는 다됐다

첨부한 엑셀파일을 더블클릭하면 아래의 그림으로 나온다


 



각자 원하는 성경, 장, 절을 입력하고 아래그림과 같이 범위를 지정한다




  
그리고 원하는 버튼을 선택해 실행하면 된다

엑셀의 경우 Sheet2에 찾은 성경구절이 있고
PPT의 경우 바로 파워포인트로 결과가 디스플레이되고
워드의 경우  C:\MyNewWordDoc이란 파일에 성경구절이 있다


엑셀 영어 단어장 자동으로 만들기

2011. 12. 20. 15:53 | Posted by 이비그치면
영어단어만 list해놓고 실행하면 사전 데이타를 읽어서

단어장을 자동으로 완성해주는 프로그램이다

사전 데이타가 좀 허접(?)하긴 하지만 맘에 안들면 직접 수정해 고칠 수도 있고

단어를 추가할수도 있어 나름 편리한 사전 데이타이다



압축을 풀어
c:\dictdata 폴더밑에 a에서 z까지의 파일이 있음을 확인한다

아래의 엑셀파일을 다운로드하여 열면(보안경고가 나오면 이콘텐츠사용 표시후 확인)




아래처럼 단어를 반드시 지정후 단어뜻가져오기 버튼을 누른다


버튼을 누른후의 결과이다


위의 실행에서 에러가 나는 경우 추가로 해야 할 작업이 있다

 
개발도구의 제일좌측의 Visual Basic 클릭

창이 열리면 도구--> 참조 하여 아래처럼 된후
녹색으로 된 두개의 참조를 찾아 체크해주고 확인
다시 원화면으로 가서 단어지정후 단어뜻가져오기 버튼을 누른다



간단한 숫자 채우기지만 그렇게 간단하지만은 않은 프로그램입니다


위와 같이 임의의 사각형에 숫자를 채우는 것입니다
주어진 폭과 높이의 사각형이 주어지면 숫자를 증가시켜가며 셀에 숫자를 채우고
끝에 도달하면 방향을 바꾸어 숫자를 채우면 됩니다

사람이 하면 너무나 쉬운데 코딩을 해보면 쉽지만은 않습니다 

사람이 문제를 해결하듯 프로그램을 해나가는 거를 보여주는 아주 간단한 프로그램 사례입니다

각자 한번 해를 생각해보시고 저의 답을 봐주세요



위의 프로그램에 약간 살을 더한 프로그램이다

소스를 첨부하니 각자에게 맞추어 변경하여 사용하시기 바란다


각종기념일, 휴일, 음력날짜 표시(가족음력생일및 음력휴일 표시)가 되어있는 달력이다
일년 전체 그리고 낱장으로 된 월 달력이 포함되어 있다 

가족기념일은 이름과 월일을 바꿔서 입력하고
휴일같은게  변경되는 부분은  변경해넣어야 된다

아래가 2012년 캘린더이다
기념일은 녹색으로 칠해진 셀로 구분되어있다

 

 

달력과 관련한 로직(윤년 체크등등)이 없이  엑셀의 날짜관련 함수만을 이용해 만든
간단한 달력 만드는 프로그램이다

소스를 첨부하니 관심있으신 분은 참고하시기 바란다



실행버튼 좌측 셀에 연도를 입력하고 엔터후 실행버튼을 누른다

아래가 실행후의 그림이다


 
이전 1 2 3 4 5 다음