[엑셀 VBA] ASCII 코드 목록

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

그냥 엑셀을 사용하면서 필요한 아스키 코드를 정리!!

아.. VBA에서 사용하기 위해선 Chr()에 넣어서 쓰는겁니다!!

*참고 Alt+Enter를 통한 줄바꿈 :                   Chr(10)
*Text 파일 등에서 사용하는 줄바꿈(Enter) :  Chr(13)

막상 찾으려니깐 힘드네요;;

1. 인쇄 불가능한 ASCII 제어문자들

10진수 문자 10진수 문자
0 NUL(null) 16 DLE(data link escape)
1 SOH(start of heading) 17 DC1(device control 1)
2 SOX(start of text) 18 DC2(device control 2)
3 EOX(end of text) 19 DC3(device control 3)
4 EOT(end of transmission) 20 DC4(device control 4)
5 ENQ(inquiry) 21 NAK(negative acknowledge)
6 ACK(acknowledge) 22 SYN(synchronous idle)
7 BEL(bell) 23 ETB(end of transmission block)
8 BS(backspace) 24 CAN(cancel)
9 HT(horizontal tab) 25 EM(end of medium)
10 LF(NL line feed/new line)
라인 바꾸기
26 SUB(substitute)
11 VT(vertical tab) 27 ESC(escape)
12 FF(form feed/new page) 28 FS(file separator)
13 CR(carriage return) 29 GS(group separator)
14 SO(shift out) 30 RS(record separator)
15 SI(shift in) 31 US(unit separator)

2. 인쇄 가능한 ASCII 제어문자들

10진수 문자 10진수 문자
  32   공백   80   P
  33   !   81   Q
  34   "   82   R
  35   #   83   S
  36   $   84   T
  37   %   85   U
  38   &   86   V
  39   '   87   w
  40   (   88   X
  41   )   89   Y
  42   *   90   Z
  43   +   91   [
  44   ,   92   \
  45   -   93   ]
  46   .   94   ^
  47   /   95   _
  48   0   96   `
  49   1   97   a
  50   2   98   b
  51   3   99   c
  52   4   100   d
  53   5   101   e
  54   6   102   f
  55   7   103   g
  56   8   104   h
  57   9   105   i
  58   :   106   j
  59   ;   107   k
  60   <   108   l
  61   =   109   m
  62   >   110   n
  63   ?   111   o
  64   @   112   p
  65   A   113   q
  66   B   114   r
  67   C   115   s
  68   D   116   t
  69   E   117   u
  70   F   118   v
  71   G   119   w
  72   H   120   x
  73   I   121   y
  74   J   122   z
  75   K   123   {
  76     124   |
  77   M   125   }
  78   N   126   ~
  79   O   127   DEL


3. 확장 ASCII 문자


10진수 문자 10진수 문자
  128   Ç   192  
  129   ü   193  
  130   é   194  
  131   â   195  
  132   ä   196  
  133   à   197  
  134   å   198  
  135   ç   199  
  136   ê   200  
  137   ë   201  
  138   è   202  
  139   ï   203  
  140   î   204  
  141   ì   205  
  142   Ä   206  
  143   Å   207  
  144   É   208  
  145   æ   209  
  146   Æ   210  
  147   ô   211  
  148   ö   212   Ô
  149   ò   213  
  150   û   214  
  151   ù   215  
  152   ÿ   216  
  153   Ö   217  
  154   Ü   218  
  155   ¢   219  
  156   £   220  
  157   ¥   221  
  158     222  
  159   ƒ   223  
  160   á   224   α
  161   í   225   ß
  162   ó   226   Γ
  163   ú   227   π
  164   ñ   228   Σ
  165   Ñ   229   σ
  166   ª   230   µ
  167   º   231   τ
  168   ¿   232   Φ
  169     233   Θ
  170   ¬   234   Ω
  171   ½   235   δ
  172   ¼   236  
  173   ¡   237   φ
  174   «   238   ε
  175   »   239  
  176     240  
  177     241   ±
  178     242  
  179     243  
  180     244  
  181     245  
  182     246   ÷
  183     247  
  184     248  
  185     249  
  186     250   ·
  187     251  
  188     252  
  189     253   ²
  190     254  
  191     255   

댓글()

[엑셀VBA] 디렉토리에서 파일 이름 리스트 가져오기!

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

가끔 엑셀에서 파일 이름 리스트를 가져올 필요가 있다.
(파일 관리라던가 버젼 관리라던가..)
그거 할 때 쓸만한 함수

Sub DirFileList()

Dim fileList() As String
Dim fName As String
Dim fPath As String
Dim i As Integer
Dim startrow As Integer
Dim ws As Worksheet
Dim filetype  As String

'셀에 항목으로 경로입력이 필요함을 통보
Range("C2").Select
fPath = "D:\Data\"
'셀에 항목으로 확장자입력이 필요함을 통보
filetype = "*"

 

startrow = 2    'starting row for the data
fName = Dir(fPath & "*." & filetype)

While fName <> ""
    i = i + 1
    ReDim Preserve fileList(1 To i)
    fileList(i) = fName
    fName = Dir()
Wend


If i = 0 Then
Range("F2").Select
    ActiveCell.FormulaR1C1 = "No Files Found!"
    Exit Sub
End If
For i = 1 To UBound(fileList)
    ws.Range("A" & i + startrow).Value = fileList(i)
Next
Columns(1).AutoFit

End Sub

다른 분이 만드신건데..
출처를 모르겠네요;;;
본 제작자 분이 보시거나 아시면 연락을;;;;

댓글()

Call과 ByVal

학습/엑셀 VBA|2011. 4. 20. 09:33
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
어떤 함수를 호출할 경우 인자 값이 필요한 경우가 있다.

Sub Func(iVal As Integar)

Print( iVal)
iVal = iVal + 3
Print(iVal)

End Sub

위의 함수를 호출할 경우

Call로 호출을 하면 iVal의 인자값이 함수 종료 후에 변경이 된다.
-_-;; 말이 어렵네요.. 어쨋던 C언어의 포인터처럼 인자가 연동이 된다는 것이다.

그러면... 혹시 하나는 연동하고 하나는 연동하고 싶지 않을 경우는 어떻할 것인가;;;

그럴 때에는 ByVal을 사용하면 된다.

ByVal은 해당 인자를 연동하지 않겠다는 것을 의미한다.

---
언제나 저 혼자 보기 위해서 쓰는 글입니다.
혹시나 질문이 필요하면 .... 댓글을 달아주세요;
뭐.. 사실 이건 잊어먹지 않기 위해서 쓰는 글입니다. 

댓글()

[엑셀]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]로 저장합니다.

댓글()

엑셀 값만 복사하기! (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을 확인해보시길...


댓글()

[엑셀]10억을 1로 표시하는 방법, 천을 1로 표시하는 방법

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


엑셀에서 1,000,000,000을 1로 표시하는 방법

엑셀의 셀 서식에서 #,,, 으로 설정하면 된다.

',' 하나당 1000단위를 설정하는 것으로 # 뒷 부분에 3개의 ','을 써 놓으면 약 9개의 단위를 제외한다.

4개 단위로 제외하는 방법은 잘 모르겠다.

아래는 엑셀의 사용자 지정 서식 코드 법이다.
http://office.microsoft.com/ko-kr/excel/HP051986791042.aspx?pid=CH010036911042

댓글()

VBA에서 엑셀 함수 이용하기.

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

VBA 쓰다가 가끔씩 필요한 함수들이 있기 마련이다
근데 엑셀에서 함수로는 기억이 나는데.. VBA은 어떤거지 라고 의문이 날 때가 있다.


-_- 그 때마다 공간 하나에 함수를 쓰고 가져오는 방법도 쓰지만..
Exam>


Range("B1").FormulaR1C1 = "=SUM("A:A")"  .. 뭐 이런식??으로 쓰고
Range("B1").Value                                    이런 식으로 값을 가져오는 방법..


하지만 그 보다  간단하고 좋은 방법이 있다.


dim fSum as SIngle
fSum =Evaluate("=SUM(A:A)")


부왘!
이렇게 그냥 바로 Evaluate를 사용하면 된다!


다른 방법으로...


Application.WorksheetFunction.sum()...
Application.WorksheetFunction.Acos()...
Application.WorksheetFunction.pi()...


처럼 Application의 Function으로 바로 접근하는 법도 있지만.. Excel함수를 바로 사용하는게 아니라서.. 익숙치 않아 힘들 때가 있으니깐.... 잘 안쓰게 되더라..


뭐 그렇다는 겁니다...


*반말 표현이나 상스러운 표현이 있더라도 이해해주세요 ㅠㅠ
*혼자 정리하기 위해서 쓰는 문서라서 그래요...

댓글()

엑셀 VBA를 이용한 파일 존재 유무 확인

학습/엑셀 VBA|2011. 3. 10. 14:43
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
엑셀 VBA를 이용해서 파일이 존재하는지 여부를 확인하는 함수를 만드는 방법입니다.

VBA를 열어서 아래와 같은 코드를 입력해 놓으면, 

=FileChk([파일명]) 을 이용해서 파일 여부를 확인할 수 있습니다.

------------------입력할 코드입니다. ------------------
Function FileChk(sFileName As String)
    Dim sChkFile As String
    
    sChkFile = Dir(sFileName)
    If (Len(sChkFile) > 0) Then
        FileChk = True
    Else
        FileChk = False
    End If
End Function
------------------------------------------------------

[파일명]에 해당되는 파일이 있을 경우에는 TRUE를 반환합니다.
(물론 없을 경우에는 FALSE)를 반환하지요.

IF문을 이용해서 다른 Text로 바꾸어 출력할 수도 있어요 ^^
=IF( FileChk([파일명]), "있음!", "없네요!")

아... 그리고 그냥 파일명만을 넣으면, 저장된 엑셀 파일과 같은 위치에 있는 파일만 체크합니다.
만약 다른 폴더에 있는 것을 검사하고 싶으시면,

C:\Text.txt 처럼 경로명까지 붙여주시면 됩니다.


댓글()

VBA의 Break문 Exit

학습/엑셀 VBA|2011. 3. 10. 14:35
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
엑셀 VBA를 사용하면서 C에 있는 break 문을 찾았는데..
찾을 수가 없더군요.

하지만 같은 기능을 하는 Exit 문이 존재합니다.



For문에서 나가고 싶으면
Exit For

Do-While문에서 나가고 싶으면
Exit Do

위와 같은 방법으로 사용할 수 있어요.

댓글()