블로그 이미지
이비그치면

태그목록

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

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

WORD VBA - 번체자 제거하고 병음만 남기기

2016. 12. 23. 15:27 | Posted by 이비그치면

아래 중국어(한어) 번체자(병음)으로 되어있는 문자열에서

병음만 남기는 VBA  script이다


(nín)(shì)(lǎo)(shī)(ma)  ==> nínshìlǎoshīma


Sub xxxx()
Dim regEx, Match, Matches
Dim sPinyin As String

Set regEx = New RegExp

sHan = "您(nín)是(shì)老(lǎo)师(shī)吗(ma)"

regEx.Pattern = "\((.*?)\)"  '-- 괄호속 문자 찾기(non-greedy)
regEx.IgnoreCase = True
regEx.Global = True
Set Matches = regEx.Execute(sHan)

sPinyin = ""
For Each m In Matches
    sPinyin = sPinyin + m.SubMatches(0)
Next
Debug.Print sPinyin

End Sub


예를 들어 8:55부터 10:00까지 10초단위로 작성한 모듈내의 특정 procedure를 

아래의 예제에서는 첫번째 쉬트(Sheet1)에 있는 버튼이 클릭되었을 때 지정된  매크로를

실행시키는 방법이다




Public Sub runbtn()
    Application.Run ("Sheet1.CommandButton1_Click")
End Sub

Sub setTimer()
    '
    '--- 08:55분부터 10:00까지 10초단위로 실행하도록 타이머 세팅
    Dim nSetCnt As Integer

    dTime = TimeValue("08:55:00")

    nMax = (60 * 60 + 60 * 5) / 10

    For nSetCnt = 0 To nMax
        Application.OnTime dTime, "Sheet1.runbtn"
        dTime = dTime + TimeValue("00:00:10")
    Next

End Sub

Public Sub CommandButton1_Click()
    Debug.Print "실행시각 : " + CStr(Now())
End Sub


엑셀 홀수열(한줄 건너 한줄) 삭제

2015. 3. 14. 15:17 | Posted by 이비그치면

= mod(row(2), 2)

자동filter 후 전체삭제

chm 좌측 부분(TOC) tree menu로 구성하기

2014. 8. 30. 14:17 | Posted by 이비그치면

다음과 같은 chm 파일 만들기에 대한 설명입니다


위그림의 실제 파일입니다

chmtest.chm


위파일을 만들기 위해선 먼저 html 파일이 필요합니다

간단한 테스트상황을 위해서 3개의 html파일만 이용하였습니다

먼저 메인 index 파일입니다(index.htm  )

그리고 content가 들어있는 파일입니다

Bar.html

Foo.html

이제 chm파일을 만들기위한 과정입니다


직접 테스해보실 분들은 루트폴더(c:\)밑에 chmtest 폴더를 만들고 다운받은 파일들을

거기에 위치시키고 하시면됩니다


1) HTML Help Workshop 설치

   먼저 html compiler 가 있어야합니다

   없는분은 다음에서 다운로드하여 구할수있습니다

   http://www.microsoft.com/downloads/details.aspx?familyid=00535334-c8a6-452f-9aa0-d597d16580cc&displaylang=en


2) 프로젝트파일(.hhp)과 목차파일(.hhc) 생성(HTML Help Workshop에서 사용)

    

- 프로젝트파일chmtest.hhp  )

[Options]
Compatibility = 1.1 Or later
Compiled file=chmtest.chm
Contents file=chmtest.hhc
Default topic=c:\chmtest\index.htm
Display compile progress=No
Language=0x412 한국어(대한민국)
 
[Files]
Foo.html
Bar.html

- 목차파일chmtest.hhc  )

파일을 다운받아보면 아래에 보여지는 코드와 다른부분이 있는데 이는 syntax highlighter가 제대로 적용되지않아 약간 수정한부분이 있습니다



3) html 컴파일

   - cd c:\chmtest
   - C:\chmtest>"c:\Program Files\HTML Help Workshop\hhc.exe" chmtest.hhp


unix에서 파일안에 있는 null character(vi로 열어보면 ^@로 보임) space로 대치하기

1) edit mode로 들어가서

  :%s/ctrl-v ctrl-2/ /g


2) tr command 이용(shell 이용해서 복수의 파일 한꺼번에 변경할때)

    tr -A '\000' ' ' < foo.txt > bar.txt


1) 파이선 제공함수 이용


>>> iNum = 1234567
>>> format(iNum, ',d')
'1,234,567'
>>> fNum = 1234567.89
>>> format(fNum, ',.2f')
'1,234,567.89'
>>> 

2) 정규식(Regular Expression) 이용

MS Office Documents(MS WORD, MS Excel etc.)에서 VBA를 이용하여

한자, 일본어, 한글 추출

unicode 와 정규식(Regular Expression) 사용


Sub test()
Dim RegEx As Object
Set RegEx = CreateObject("vbscript.regexp")
    
'-- 한자 추출
RegEx.Pattern = "[\u2E80-\u2EFF\u3400-\u4DBF\u4E00-\u9FBF\uF900-\uFAFF\u20000-\u2A6DF\u2F800-\u2FA1F]+"
RegEx.IgnoreCase = True
RegEx.Global = True

sStr = "태초(太初)에 하나님이 천지(天地)를 창조(創造)하시니라"

Set matches = RegEx.Execute(sStr)

For Each mch In matches
    Debug.Print mch.Value
Next

'-- 한글 추출
RegEx.Pattern = "[\uAC00-\uD7AF]+"
Set matches = RegEx.Execute(sStr)

For Each mch In matches
    Debug.Print mch.Value
Next

'-- 일어 추출
RegEx.Pattern = "[\u3040-\u309F\u30A0-\u30FF\u31F0-\u31FF\u8EA1-\u8EFE\uFF61-\uFF9F]+"
sStr = "はじめに神は天と地とを創造された"

Set matches = RegEx.Execute(sStr)

For Each mch In matches
    Debug.Print mch.Value
Next

End Sub
太初
天地
創造
태초
에
하나님이
천지
를
창조
하시니라
はじめに
は
と
とを
された

한줄데이타 정해진자릿수(offset)로 나누기

2013. 7. 4. 18:47 | Posted by 이비그치면
import re 
str1 = 'abcdef'
 p = re.compile('^(.{2})(.{3})(.{1})')
aa = "|".join(p.split(str1))
print aa
'|ab|cde|f|'

웹사이트의 소스보기를 할때 자바스크립트 코드가 다음과 같이 압축되어

가독성이 떨어져있는 경우가 있다(일종의 코드숨기기)


다음 사이트에 접속하여 압축된 코드를 복사하여 

http://jsbeautifier.org/

Beautify javascript or HTML 창에 붙여넣기하고 ctrl-enter 하면 

아래와 같이 보기좋아진 코드를 얻을수있다


압축된 코드

var arg;this.div=null;this.classMain="tabber";this.classMainLive="tabberlive";this.classTab="tabbertab";this.classTabDefault="tabbertabdefault";this.classNav="tabbernav";this.classTabHide="tabbertabhide";this.classNavActive="tabberactive";this.titleElements=['h2','h3','h4','h5','h6'];this.titleElementsStripHTML=true;this.removeTitle=true;this.addLinkId=false;this.linkIdFormat='nav';for(arg in argsObj){this[arg]=argsObj[arg];}
this.REclassMain=new RegExp('\\b'+this.classMain+'\\b','gi');this.REclassMainLive=new RegExp('\\b'+this.classMainLive+'\\b','gi');this.REclassTab=new RegExp('\\b'+this.classTab+'\\b','gi');this.REclassTabDefault=new RegExp('\\b'+this.classTabDefault+'\\b','gi');this.REclassTabHide=new RegExp('\\b'+this.classTabHide+'\\b','gi');this.tabs=new Array();if(this.div){this.init(this.div);this.div=null;}}


들여쓰기되어 보기좋아진 코드

var arg;
this.div = null;
this.classMain = "tabber";
this.classMainLive = "tabberlive";
this.classTab = "tabbertab";
this.classTabDefault = "tabbertabdefault";
this.classNav = "tabbernav";
this.classTabHide = "tabbertabhide";
this.classNavActive = "tabberactive";
this.titleElements = ['h2', 'h3', 'h4', 'h5', 'h6'];
this.titleElementsStripHTML = true;
this.removeTitle = true;
this.addLinkId = false;
this.linkIdFormat = 'nav';
for (arg in argsObj) {
    this[arg] = argsObj[arg];
}
this.REclassMain = new RegExp('\\b' + this.classMain + '\\b', 'gi');
this.REclassMainLive = new RegExp('\\b' + this.classMainLive + '\\b', 'gi');
this.REclassTab = new RegExp('\\b' + this.classTab + '\\b', 'gi');
this.REclassTabDefault = new RegExp('\\b' + this.classTabDefault + '\\b', 'gi');
this.REclassTabHide = new RegExp('\\b' + this.classTabHide + '\\b', 'gi');
this.tabs = new Array();
if (this.div) {
    this.init(this.div);
    this.div = null;
}
}

프로그램 소스코드(program source code)를 티스토리 블로그(tistory blog)에

프로그래밍언어(Programming Language)별로

syntax highlighting(구문, keyword등 하이라이트로 구분)하여

보기좋게 올리는 방법이다


1) SyntaxHighlighter download

http://alexgorbatchev.com/SyntaxHighlighter/download/


2) 다운받은 압축파일을 풀어서 티스토리에 올리기(upload)

    - 티스토리 admin(관리자)으로 login

    - 꾸미기의 HTML/CSS편집 -> 파일업로드

       . Brush(코드종류별 Syntax 프로그램) -- 압축해제후 scripts 폴더에서 각자 원하는걸로

         제경우 자바스크립트, 파이선, 비쥬얼베이직, HTML, SQL

         shBrushJScript.js

         shBrushPython.js

         shBrushVb.js

         shBrushXml.js

         shBrushSql.js


       . 메인프로그램 -- scripts 폴더에서

         shCore.js


      . 스타일쉬트  -- styles 폴더에서

        shCore .css

        shThemeDefault.css


3) 티스토리 스킨파일(tistory skin.html) 수정

    - 꾸미기의 HTML/CSS편집 -> HTML/CSS의 skin.html

       <head>와 </head> 사이에 아래코드 삽입

















4) 글쓰기에서 프로그램코드를 넣을때 다음과 같이 brush명을 입력하여 사용

브러시명 : 파이선(python), 자바스크립트(js), 비쥬얼베이직(vb), SQL(sql), HTML(html)

 
  
myName = "Ahn"
print myName