mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Thursday, February 01, 2007

Excel/엑셀 VBA] 문자열 크기/길이, 글자 수/바이트 수 계산 함수; String Size Function


엑셀 비베에서는 다음과 같은 함수를 사용하여, 문자열의 사이즈(길이)를 구할 수 있습니다.

Len(): 한글 영문 구분없이, 실제의 글자 개수만 반환

LenMbcs(): 문자열을 ANSI(한글 윈도우의 경우에는, 한글 완성형에 해당) 인코딩으로 간주하여, 바이트 수 계산. 영문은 1바이트, 한글은 2바이트. 단, 이 함수는 비베에 내장되어 있지 않기에 아래 예제에서처럼 직접 만들어 주어야 함.

LenB(): 문자열을 16비트 유니코드로 간주하여 바이트 수 계산. 한글/영문 관계 없이 무조건 1글자는 2바이트


문자열 길이 (크기; 사이즈) 구하기 예제


(엑셀에서 Alt+F11키를 눌러, 비베 에디터를 실행하고, 비베 에디터 메뉴의, "삽입 > 모듈"을 선택한 후, 다음 코드를 붙여 넣습니다.)
비베 에디터에서 F5 키를 누르거나, 엑셀에서 Alt+F8 키를 누르면 VBA 매크로가 실행됩니다.

Sub String_Length_Example()

  e = "ABCD"
  h = "가나다라"


  '''''''''''''''''''''''''
  ' 단순히 글자 개수 구하기

  result = Len(e)
  MsgBox result & "글자"
  ' 출력 결과: 4글자


  result = Len(h)
  MsgBox result & "글자"
  ' 출력 결과: 4글자




  '''''''''''''''''''''''''
  ' 한글 완성형 바이트 수 구하기

  result = LenMbcs(e)
  MsgBox result & "바이트(ANSI)"
  ' 출력 결과: 4바이트(ANSI)


  result = LenMbcs(h)
  MsgBox result & "바이트(ANSI)"
  ' 출력 결과: 8바이트(ANSI)




  '''''''''''''''''''''''''
  ' 유니코드 바이트 수 구하기

  result = LenB(e)
  MsgBox result & "바이트(Unicode)"
  ' 출력 결과: 8바이트(Unicode)


  result = LenB(h)
  MsgBox result & "바이트(Unicode)"
  ' 출력 결과: 8바이트(Unicode)


End Sub




' 한글 완성형 문자열의 바이트 수 구하기 함수

Function LenMbcs(ByVal str As String)
  LenMbcs = LenB(StrConv(str, vbFromUnicode))
End Function



비베(VBA)가 아닌, 엑셀의 셀에서, 내장 함수로 문자열 길이 구하기: ▶▶ Excel/엑셀] 셀에서, 문자열 길이, 크기(글자 수/바이트 수) 구하기; String Size

VBA 배열의 길이 구하기: ▶▶ 엑셀/VBA매크로] 배열 크기 사이즈, 요소 개수 구하기; VB Array Size, Length




tag: office
엑셀 Excel | 워드 Word | VBA 매크로 | 오피스

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top