언어확인..
Application.LanguageSettings.LanguageID(msoLanguageIDInstall) '설치언어
Application.LanguageSettings.LanguageID(msoLanguageIDExeMode) '실행언어
Application.LanguageSettings.LanguageID(msoLanguageIDUI) '인터페이스언어
Application.LanguageSettings.LanguageID(msoLanguageIDHelp) '도움말언어
아래글들에 대한 결론..
셀서식을 적용할때에는 아래와 같이 사용하자.
Selection.NumberFormat = "_-* #,##0_-;[RED]_-* - #,##0_-;_-* ""-""_-;_-@_-"
왜냐면..
한국어가 기본 편집 언어로 설정되어 있다면,
Selection.NumberFormatLocal 에서의 "[빨강]" 부분은 에러가 나지 않는다.
(대신 [Red]라고 쓰면 에러난다. 편집언어가 한국어이고 속성이 Local이기 때문)
반대로 편집언어가 영어이면서 NumberFormatLocal 에 [빨강]이라고 쓰면 에러가 난다.
이럴때는 [Red]를 쓰거나, NumberFormat 속성을 사용한다. 물론 편집언어에 한국어가 추가돼 있어야한다.
'현 시스템에 설정된 편집 기본 언어가 한국이면 참(True)값을 리턴하는 함수.
If Application.LanguageSettings.LanguagePreferredForEditing(msoLanguageIDKorean) Then ….
참고..
Selection.NumberFormat = "#,##0_ ;[빨강]-#,##0 " '-----> NumberFormat 으로 [빨강]을 쓰면 에러난다.
Selection.NumberFormat = "#,##0_ ;[Red]-#,##0 " '-----> NumberFormat 으로 [Red]를 쓰면 오케이~
Selection.NumberFormatLocal = "#,##0_ ;[빨강]-#,##0 " '-----> NumberFormatLocal 로 [빨강]을 쓰면 오케이~
Selection.NumberFormatLocal = "#,##0_ ;[Red]-#,##0 " '-----> NumberFormatLocal 로 [Red]을 쓰면 에러
Excel_LanguageSetting.xls
Option Explicit ' 한국어는 1042, 영어(미국)은 1033 '기본 편집 언어로 되어 있는 언어의 msgbox가 팝업된다. |
참고로.. 국가 설정에 따라 언어를 추정해볼 수도 있겠다.
? application.International(xlcountrycode)
한국은 82
즉, 국가코드가 82면 한글로 표시하고 나머지는 영어로 표시하든가 하면 된다.
아래 코드는 날짜를 표시하는 순서인데.. 년-월-일, 월-일-년 등 설정을 확인할때 사용한다.
자동필터링 할때 날짜 데이터를 필터링할때 간혹 문제가 있었는데.. 아래 코드를 활용해서 해결해봐야겠다.
? application.International(xldateorder)