[엑셀]VBA에서 Text 파일 저장하기 (UTF-8 로 저장하기)

학습/엑셀 VBA|2011. 4. 19. 20:08
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


VBA을 이용해서 Text 파일 (혹은 Xml등등)을 저장하는 방법입니다.

보통 VBA의 FileSystem을 이용한 [Open / Close를 활용 한 방법이 있습니다. 
(구글링 및 네이버를 이용해서 쉽게 찾을 수 있습니다.)

하지만 FileSystem은 ASCII 형태로 저장이 되어 일부 프로그램에서 로드할 때 깨지거나,
문제점이 발생할 수 있습니다. 
(회사에서 UTF-8 형태로 모두 바꾸는 바람에 기록 방법을 바꾸어야 했어요 ㅠㅠ)

이 때에는 Stream을 이용해서 File을 생성 기록 할 수 있습니다.

'Stream의 생성

Dim stmFileControl As Stream       'Stream 인자 생성
Set stmFileControl = New Strem     'Stream 저장공간 배치

stmFileControl .Open
stmFileControl.Position = 0             '기록, 혹은 읽을 위치를 0으로 맞춘다.
stmFileControl.Charset = "UTF-8"                   '저장시 [UTF-8]로 저장합니다.

'Stream에 기록

stmFileControl.WriteText("기록값을 String으로 넣습니다." & sString & " &로 묶어도 되요")

'Stream에서 파일로 저장

stmFileControl.SaveToFile "C:\Test.txt", adSaveCreateOverWrite
'C:\Test.txt에 저장(혹은 생성)하겠다는 것입니다.
'adSaveCreateOverWrite가 해당 옵션을 선택하는 것입니다. (다른 옵션도 있겠지만.. 확인하지 않았어요..

stmFileControl.Close
'stmFileControl을 닫습니다.


각 생성 및 소멸을 함수로 묶어서 만들면 편하게 사용할 수 있습니다. : )


--참고하세요!!--
Stream을 사용하려면
Microsoft ActiveX DataObject 2.8(이상)을 사용할 수 있어야 합니다.
VBA에서  [도구>참조] 를 눌러서 위의 라이브러리를 추가해주세요.

--2011년 5월 추가 내용
그냥 일반적으로 사용하는 Text형식은 아래와 같다. 
stmFileControl.Charset = "euc-kr"                  '저장시 [euc-kr8]로 저장합니다.

댓글()

[일본 게임기 대전 史]

게임_잡상|2011. 4. 8. 10:16
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.







'게임_잡상' 카테고리의 다른 글

[게임] 가디언 히어로즈 HD  (0) 2011.05.07
sMemo 쪽지 파일 >ㅁ< 쓸만할 것 같은데..  (0) 2011.05.06
매크로도 돈내고 잡아??  (0) 2011.04.07
퀘스트 난이도 문제.  (2) 2011.03.25
매지카의 스킬 조합  (2) 2011.03.25

댓글()

매크로도 돈내고 잡아??

게임_잡상|2011. 4. 7. 08:35
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
헐.. 게시판 글을 읽는 중에...;; 멋진 걸 보았다;
쿨럭;; 캐쉬 아이템을 사서 매크로를 잡을 수 있게 한다니!

- +-! 그저 대단하다고 밖에 말이 안 나온다!
이런 자세는 배워야할듯;;

http://www.thisisgame.com/board/view.php?id=633247&board=&category=203&subcategory=&page=1&best=&searchmode=&search=&orderby=&token=

'게임_잡상' 카테고리의 다른 글

sMemo 쪽지 파일 >ㅁ< 쓸만할 것 같은데..  (0) 2011.05.06
[일본 게임기 대전 史]  (0) 2011.04.08
퀘스트 난이도 문제.  (2) 2011.03.25
매지카의 스킬 조합  (2) 2011.03.25
[잡담] 게임 Magicka 완소 >ㅁ<b  (0) 2011.03.21

댓글()

퀘스트 난이도 문제.

게임_잡상|2011. 3. 25. 15:20
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Miren님이 thisisgame 사이트에서 제시한 문제입니다.
(난 몰라 무단 링크했어요.. 말하면 내려야지 하고 있습니다.)

퀘스트의 난이도는 어느 정도가 적당할까요;;

http://www.thisisgame.com/board/view.php?board=0&category=203&subcategory=&page=1&best=&searchmode=&search=&orderby=&token=&id=623802&gid=

- _- 저는 일단 정형화된 형태로는 모든 유저를 만족시킬 수 없다!인 것 같아요.
각 유저에 맞는 대응과 난이도로 측정되어야 하는게 아닐까 하는거죠

일단 기본적인 생각은 그런데..

이게 생각하면 문제도 많더군요.

모든 퀘스트에 동일하게 적용하긴 그렇다.
(튜토리얼 및 스토리 연관용 퀘스트는 어쩔꺼야!)

난이도는 무엇을 기준으로 할 것인가?
내가 잘하면 낮은 난이도의 퀘스트는 할 수 없는 것인가? 할 필요 없는 것인가?
(옵션을 통한 [쉬움,어려움]을 두어서 해결하는 것은 어떨까 합니다만;;)

어려움에 대한 보상을 확실히 이해시킬 수 있을 것인가?

아이템 보상은... 가치 판단을 어떻게 하고 보상은 어떻게 할 것인가?
(아이템에 등급을 만들고 보상 테이블을 쫘아아아악...;;)

흠.. 만약 협력퀘 같은게 있으면 큰일이군요;;
협력 퀘는 또 다른 문제겠네요;;

각 유저마다 퀘스트 클리어 점수(스타의 레더, 와우 업적?)같은 것을 놓고
이에 따라 퀘스트 난이도가 변하고, 협력 퀘의 퀘스트 점수 총합으로 처리한다.
하면 어느 정도 될 수는 있겠네요.

아이템은 각 보상마다 점수가 있고 이에 따라 등급이 변경되어 나오는거죠!
일반 포션,고급 포션... 이런 식?
(모든 아이템을 여러 등급으로 만들어야 하는군요 ㅠㅠ)
(게다가 이럴 경우 중간급이 존재하지 않아요.. ㅠㅠ)

아니면 아이템의 드롭 확률을 조절하는 방향은 어떨까요? ;;
냠 이 것도 문제는 있는듯.. 점점 복잡해 지네요;;





'게임_잡상' 카테고리의 다른 글

sMemo 쪽지 파일 >ㅁ< 쓸만할 것 같은데..  (0) 2011.05.06
[일본 게임기 대전 史]  (0) 2011.04.08
매크로도 돈내고 잡아??  (0) 2011.04.07
매지카의 스킬 조합  (2) 2011.03.25
[잡담] 게임 Magicka 완소 >ㅁ<b  (0) 2011.03.21

댓글()

매지카의 스킬 조합

게임_잡상|2011. 3. 25. 10:55
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
ㅋ 전에 말했던 매지카의 스킬은 매우 효과적이고 재미있게 구성이 되어 있다.

각기 8개 속성을 조합하여 마법을 쓰는 효과인데,
규칙이 일정하고, 특성 마법을 상상할 수 있는 점이 그렇다.

[냉기]와 [방패]를 섞으면 [냉기의 벽]을 만들 수 있다.
[불]과 [바위]를 섞으면 [파이어 볼]을 만들 수 있다.

이렇게 뒤섞이 개념들이 섞여서 유저 스스로 무언가 스킬을 만들어 간다는 느낌이 매우 좋은듯,
사실 상 커멘드를 이용한 기술 사용과 같은 의미이지만
유저들로 하여금 각기 키에 대한 속성을 인식시켜서 기억하기 쉽게 만들고 무언가 스스로 찾아간다는 느낌을
함께 주는 것이 좋았다.
그런 점에서 마인 크래프트의 조합 방식과 비슷한 점이 있다.
(물건의 외형에 따라 아이템을 배열해야 하는 방식 => 조합법을 연상하기 쉽게 한다.)

차후 매지카 스킬 조합도 한 번 분석해 봐도 재미있을듯

'게임_잡상' 카테고리의 다른 글

sMemo 쪽지 파일 >ㅁ< 쓸만할 것 같은데..  (0) 2011.05.06
[일본 게임기 대전 史]  (0) 2011.04.08
매크로도 돈내고 잡아??  (0) 2011.04.07
퀘스트 난이도 문제.  (2) 2011.03.25
[잡담] 게임 Magicka 완소 >ㅁ<b  (0) 2011.03.21

댓글()

100만원으로 1년만에 1억 넘게 버는 2가지 방법!

잡담|2011. 3. 24. 16:35
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

1.주식을 합니다.
2. 로또를 삽니다.

'잡담' 카테고리의 다른 글

멋지게 수정된 사진들!  (0) 2011.05.07
응;; 유입키워드 ASDF?? 이게 뭐지?  (0) 2011.05.07
대학로 맛집 이스탄불  (2) 2011.04.20
잡담을 합니다.  (0) 2011.03.22
나는 가수다. 룰이 잘못된 것은 아닐까??  (0) 2011.03.21

댓글()

엑셀 값만 복사하기! (VBA을 이용한 복사영역 조절)

학습/엑셀 VBA|2011. 3. 22. 23:25
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


엑셀을 사용하다가 복사를 하고 싶은데.. 서식이 언제나 같이 붙어서 다닌다.
특히 표를 만들어 두었는데 표의 테두리가 같이 따라오는 것이 영 불편하다..
뭐... 핫키를 이용해서 사용할 수도 있고, 붙여넣기 옵션이 있지만..



영 불편하다..

그래서 VBA으로 복사영역을 따오고.. 값만 현재 선택한 셀에 붙여넣기 하려고 Script를 작성했다.


Sub CopyValues()

ActiveCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationNone, SkipBlanks:=True

End Sub

ActivCell은 현재 선택된 Cell을 의미하고
PasteSpecial은 복사영역을 가져온다

그냥 복사하기 위해서는
Active.PasteSpecial를 사용하면 된다.

그래서 옵션으로

Paste:=xlPasteValues 값을 지정하게 된다.
그러면 값만 복사해주게 된다.

뭐.. 그냥 편히 쓰고 싶으시면 위의 매크로를 Copy&Paste하시고,
매크로를 등록하고 Ctrl + B 정도의 핫키를 쓰시면 됩니다.
(다만 사용시에 복사영역이 없을 경우에는 오류를 출력합니다;;)

==아래는 조사하면서 알게 된 PasteSpecial의 매개변수이다. ==

Paste
붙여넣을 값을 정의하는 부분이다.

xlPasteAll
xlPasteColumnWidths
xlPasteComments
xlPasteFormats
xlPasteFormulas
xlPasteFormulasAndNumberFormats
xlPasteValidation
xlPasteValues
xlPasteValuesAndNumberFormats
xlPasteAllExceptBorders
msdn 설명글 주소
http://msdn.microsoft.com/ko-kr/library/microsoft.office.interop.excel.xlpastetype(VS.80).aspx

Operation
붙여넣기할 때 하는 작업 방식이다.
xlPasteSpecialOperationAdd
xlPasteSpecialOperationDivde
xlPasteSpecialOperationMultiply
xlPasteSpecialOperationNone
xlPasteSpecialOperationSubtract
msdn 설명글 주소
http://msdn.microsoft.com/ko-kr/library/microsoft.office.interop.excel.xlpastespecialoperation(VS.80).aspx

SkipBlanks
복사해서 넣을 때 빈 셀을 같이 붙여 넣을 경우 True, 아닐 경우 False
(빈 셀을 클립보드에 포함할지 아닐지를 결정하는 옵션)

Traspose
범위를 붙여넣을 때에 행과 열을 바꾸면 True, 아닐 경우 False



---
각 옵션들의 설명은 나중에 추가로 포스팅하겠습니다.
일단은 msdn을 확인해보시길...


댓글()

잡담을 합니다.

잡담|2011. 3. 22. 23:25
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

잡담이란?
  한문으로는  雜섞일 잡에 談말씀 담이라 하고
  영어로는 chat, small talk 등 여러가지 표현이 있습니다.
  네이버 국어사전에서 잡담의 의미를 찾아보면 '쓸데없이 지껄이는 말'. 이라고 되어있죠.

하버드에서 사람이 일평생 하는 말의 비율에서 잡담이 차지하는 비율은 약 90%정도라는 연구 결과가
있었습니다. 즉, 사람이 하는 말은 90%는 쓸데없이 지껄이는 말이라는 것이죠. 물론 개개인의 차이가 있겠지만, 결국 사람이 하는 말 중에서 잡담이 아닌 정말 의미있는 쓸모있는 말은 10%도 안되는 것입니다.

그렇다면 10%의 의미있는 말을 하는 순간이 어느 때인가 하면 순수한 어린 아이일 때 하는 말들이 그 대부분을 차지하고 있다고 합니다.  그 이유를 연구한 교수가 말하길, '사람은 나이가 들수록, 생각이 많을수록, 아는 것이 늘어 날수록 진실된 이야기를 할 수 없기 때문이다.' 라고 합니다. 
예를 들어 A라는 사람 있다고 가정할때 A는 어릴때는 자신의 생각하는 바를 있는 그대로 솔직하게 이야기 합니다. 그러나 나이가 들어갈수록 진실된 이야기를 하는것이 힘들어집니다. 수많은 이유가 있겠지만, 사람은 나이가 들면서 아는것이 많아지고 생각이 많아지면서 자신이 솔직하게 말하는것이 자신에게 득이 되지 않는다는것을 깨닫는다고 합니다. 즉, 내가 한 말이 상대방에게 어떤 영향을 주게 될지를 알고 있기에 쉽게 그 사람에게 진실을 전하지 못합니다. 결국, A라는 사람이 어른이 되어 갈수록, 그가 하는 말의 대부분은 잡담이 되어버리는 것입니다.

하지만 여기서 또 재미있는 사실이 있습니다.
A가 말하는 잡담은 B에게는 진실된 말일 수 있다는 것이죠. 즉, B입장에선 A가 잡담을 한게 아니라 의미있는 중요한 이야기를 했다고 생각한다는 것이죠. 그리고 그 반대도 있을 수 있습니다.
그렇다면, 말을 한 A외에는 A가 잡담을 했는지 아니면 진담을 했는지, 도저히 알 방법이 없습니다.

A가 '~한 것이 ~한 것이다' 라고 이야기 했을 때, 이것이 진실인지, 잡담인지 구분할 수 있는 사람은
말을 한 화자인 A밖에 없다는 것이죠.그런데 문제는 그럼 A가 이야기 할때 잡담이 아니고 진담이라고 말해주었을때 그것이 진담인지 아닌지도 A밖에 알수 없습니다. B라는 사람 입장에서는 이 사람이 진담인지 농담인지를
구분하는 기준이 자신의 주관적인 생각밖에는 없으니까요. 
그래서 그 교수가 A의 말이 잡담인지 진담인지 구분하기 위해서 필요한 것이 뉴타입이였습니다.
자신의 의사를 왜곡되지 않은 진실로 전달하기 위해서는 진화된 인류인 신인류, 즉 뉴타입이 필요하다고 한것입니다. 하지만 뉴타입이 되기 위해서는 인류가 견디기 힘든 우주공간에서 적응을 해야 뉴타입이 될수 있었습니다.

결론은 이 글은 잡담이였습니다.

댓글()

구글 에드 센스 달아보기!! 1편 가입하자!!!

쓸만한 정보들|2011. 3. 22. 22:51
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
ㅎㅎ 구글 에드 센스 달아보기 1편!!!

- _- 후... 구글 에드 센스를 달아보자!
(이걸로 돈이나 만질 수는 없겠지만.. ㅋ 한 번 달아보게!)



1) 먼저 가입합니다.

사이트는 아래와 같네요..

www.google.com/adsense/ 

ㅎㅎ 일단 생각 없이 바로 가입 신청!!

헐.. 근데 생각보다 쓸게 많다;;;
알아보니 아래 그림과 같이 입력해주면 되요


이렇게 입력하면!

가입 신청을 할 수 있어요

가입 신청 이후에는 g-mail 개정을 이용할건지 아니면 타 사이트 이 메일로 등록할건지 묻게 됩니다.
뭐.. 전 간단히 네이버 메일로 요청했음

일단 1~2 기다리면 답이 오겠죠
(안 오면 안하고.. 어차피 궁금해서 해보는거라..)

댓글()