posted by dalnimbest 2014. 3. 1. 08:06


VBA로 작업을 하다 보면 시간이 오래걸리는 경우가 많은데, 개발자들은 Log를 보면서 작업을 하니까 갑갑함을 못느낄수 있지만, VBA로 만든 것을 돌리기만 하는 경우에는 진행상황을 알수 없어서 갑갑함을 느낄수 있다.


이때 간단하게 현재 진행현황을 보여줄려면 Application.StatusBar를 쓰면 된다.


MSDN도움말


Public Sub VBA작업()

Dim oldStatusBar As string


'이전 메시지를 기억한다.

oldStatusBar = Application.DisplayStatusBar Application.DisplayStatusBar = True 


'순환문내에서 아래 진행상황을 표시한다. Application.StatusBar = i & "/" & allCount & " Please be patient..."


'끝나기전에 초기상태로 뒤돌린다. Application.StatusBar = False Application.DisplayStatusBar = oldStatusBar


End Sub


'IT > VBA' 카테고리의 다른 글

cell내의 색상 선택하기  (0) 2014.02.28
오랜만에 다시 VBA를 할때 까먹기 쉬운거  (0) 2014.02.10
posted by dalnimbest 2014. 2. 28. 06:40


cell에 색상을 입히고 싶으면 range의 interior에 ColorIndex를 설정해주면 된다.

예) rangeOfCell.Interior.ColorIndex = 6


그런데 칼러가 숫자로만 표현되니(상수로 정해두었을거 같은데... 못찾았다.) 무슨색을 나타내는지 알기 어려워서 찾아보니 아래의 표가 있다. 



interiorfontHTMLbgcolor=Red<GreenBlueColor
Black[Color 1]#000000#000000000[Black]
White[Color 2]#FFFFFF#FFFFFF255255255[White]
Red[Color 3]#FF0000#FF000025500[Red]
Green[Color 4]#00FF00#00FF0002550[Green]
Blue[Color 5]#0000FF#0000FF00255[Blue]
Yellow[Color 6]#FFFF00#FFFF002552550[Yellow]
Magenta[Color 7]#FF00FF#FF00FF2550255[Magenta]
Cyan[Color 8]#00FFFF#00FFFF0255255[Cyan]
[Color 9][Color 9]#800000#80000012800[Color 9]
[Color 10][Color 10]#008000#00800001280[Color 10]
[Color 11][Color 11]#000080#00008000128[Color 11]
[Color 12][Color 12]#808000#8080001281280[Color 12]
[Color 13][Color 13]#800080#8000801280128[Color 13]
[Color 14][Color 14]#008080#0080800128128[Color 14]
[Color 15][Color 15]#C0C0C0#C0C0C0192192192[Color 15]
[Color 16][Color 16]#808080#808080128128128[Color 16]
[Color 17][Color 17]#9999FF#9999FF153153255[Color 17]
[Color 18][Color 18]#993366#99336615351102[Color 18]
[Color 19][Color 19]#FFFFCC#FFFFCC255255204[Color 19]
[Color 20][Color 20]#CCFFFF#CCFFFF204255255[Color 20]
[Color 21][Color 21]#660066#6600661020102[Color 21]
[Color 22][Color 22]#FF8080#FF8080255128128[Color 22]
[Color 23][Color 23]#0066CC#0066CC0102204[Color 23]
[Color 24][Color 24]#CCCCFF#CCCCFF204204255[Color 24]
[Color 25][Color 25]#000080#00008000128[Color 25]
[Color 26][Color 26]#FF00FF#FF00FF2550255[Color 26]
[Color 27][Color 27]#FFFF00#FFFF002552550[Color 27]
[Color 28][Color 28]#00FFFF#00FFFF0255255[Color 28]
[Color 29][Color 29]#800080#8000801280128[Color 29]
[Color 30][Color 30]#800000#80000012800[Color 30]
[Color 31][Color 31]#008080#0080800128128[Color 31]
[Color 32][Color 32]#0000FF#0000FF00255[Color 32]
[Color 33][Color 33]#00CCFF#00CCFF0204255[Color 33]
[Color 34][Color 34]#CCFFFF#CCFFFF204255255[Color 34]
[Color 35][Color 35]#CCFFCC#CCFFCC204255204[Color 35]
[Color 36][Color 36]#FFFF99#FFFF99255255153[Color 36]
[Color 37][Color 37]#99CCFF#99CCFF153204255[Color 37]
[Color 38][Color 38]#FF99CC#FF99CC255153204[Color 38]
[Color 39][Color 39]#CC99FF#CC99FF204153255[Color 39]
[Color 40][Color 40]#FFCC99#FFCC99255204153[Color 40]
[Color 41][Color 41]#3366FF#3366FF51102255[Color 41]
[Color 42][Color 42]#33CCCC#33CCCC51204204[Color 42]
[Color 43][Color 43]#99CC00#99CC001532040[Color 43]
[Color 44][Color 44]#FFCC00#FFCC002552040[Color 44]
[Color 45][Color 45]#FF9900#FF99002551530[Color 45]
[Color 46][Color 46]#FF6600#FF66002551020[Color 46]
[Color 47][Color 47]#666699#666699102102153[Color 47]
[Color 48][Color 48]#969696#969696150150150[Color 48]
[Color 49][Color 49]#003366#003366051102[Color 49]
[Color 50][Color 50]#339966#33996651153102[Color 50]
[Color 51][Color 51]#003300#0033000510[Color 51]
[Color 52][Color 52]#333300#33330051510[Color 52]
[Color 53][Color 53]#993300#993300153510[Color 53]
[Color 54][Color 54]#993366#99336615351102[Color 54]
[Color 55][Color 55]#333399#3333995151153[Color 55]
[Color 56][Color 56]#333333#333333515151[Color 56]
Excel only recognizes names for Color 1 through 8 (Black, White, Red, Green, Blue, Yellow, Magenta, and Cyan).  The colors 1-16 are widely understood color names from the VGA color palette.  Of the 56 colors only 40 colors appear on the palette.  The 40 colors names indicated on the Excel color palette (see below) are for descriptive purposes only. 


'IT > VBA' 카테고리의 다른 글

진행상황을 WorkSheet에서 알기  (0) 2014.03.01
오랜만에 다시 VBA를 할때 까먹기 쉬운거  (0) 2014.02.10
posted by dalnimbest 2014. 2. 10. 14:22

VBA를 안한지 한참 되었다가 다시 할려니 기본적인것이 생각이 안나서 기존 자료보면서 한참 찾았었다... 여러가지가 있겠지만... 일단 생각나는대로 정리해본다.


* 변수 선언 및 값넣기

Dim rngOne As Excel.Range    '엑셀의 Range객체

Dim strOne As String                '문자

Dim arrOne() As String            '배열

Dim dicOne As Dictionary   'dictionary를 사용하기 위해서는 도구 - 참조 로 가서 Microsoft Scripting Runtime을 참조해주어야 한다.


'객체는 Set을 써서 값을 넣어줘야 한다.

set rngOne = ThisWorkbook.Worksheets("쉬트명").Range("A1")


'dictionary는 사용전에 New를 해준다.

Set dicOne = New Dictionary

dicOne .Add Key:=키값, Item:=Value값



* if 문, for 문, while문


If (dic_Tool_Type.Item(ProcNoInDic) = 1) Then

    str_default_args = "type=1," & ""

ElseIf (dic_Tool_Type.Item(ProcNoInDic) = 2) Then

    str_default_args = "type=2," & ""

Else

    str_default_args = "ERROR : There is no tool type"

End If


'ProcNoInDic 는 variant형으로 해야한다.

For Each ProcNoInDic In dic_strAllLines


Next


For i = 0 To Len(strResult) - 1


next i



Do While 조건(참)


Loop



* prosedure와 function


'배열을 리턴할때는 마지막에 As String()로 한다.

Public Function returnExtOnlyInDic(dicOne As Dictionary, LineDelimiter As String) As String


returnExtOnlyInDic = "리턴될값"        '함수명에 들어가는 값이 리턴 되는 값이다.

End Function


Private Sub btnConvertToMMCNode()


On Error GoTo ErrorHandler:  '에러가 발생하면 ErrooHandler:로 가라는 뜻


MsgBox "정상종료"

Exit Sub  '이문장이 없으면 아래로 내려간다.

ErrorHandler:

    MsgBox "에러발생" & Err.Description

End Sub



* 문자열 조작

'문자열의 결합은 &로 연결해준다.

strResult = strPath1 & vbCrLf & strPath2



*기타


'전체에서 사용되는 변수/상수 만들기

Private Const strErrPrefix As String = "[ERROR] "    'Sub위에 적어준다. 보통 Option Explicit 바로 밑에 적어준다.


'실행 중간에 pause할수 있게... 보통 순환문 안에 넣어준다.

DoEvents







'IT > VBA' 카테고리의 다른 글

진행상황을 WorkSheet에서 알기  (0) 2014.03.01
cell내의 색상 선택하기  (0) 2014.02.28