'함수모음
Option Explicit
Option Base 1
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BrowseInfo) As Long
Private Type BrowseInfo
Owner As Long
Root As Long
pszDisplayName As String
Title As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Function GetDirectory(Msg) As String
Dim tBrowseInfo As BrowseInfo
Dim strPath As String
Dim r As Long
Dim x As Long
Dim lpIDList As Long
lpIDList = SHBrowseForFolder(tBrowseInfo)
If (lpIDList) Then
strPath = Space(512)
SHGetPathFromIDList ByVal lpIDList, ByVal strPath
GetDirectory = Left(strPath, InStr(strPath, vbNullChar) - 1)
End If
End Function
Function Trim_Name(myString) As String
Application.Volatile (True)
Dim MyPos As Integer
Do
MyPos = InStr(1, myString, "\")
myString = Mid(myString, MyPos + 1)
Loop Until MyPos = 0
Trim_Name = myString
End Function
Function Trim_FolderName(sTrwhat) As String
Application.Volatile (True)
Dim MyPos As Integer
Dim i As Integer
Dim myString As String
Dim sTemp As String
myString = sTrwhat
'Len()함수는 문자열의 길이(몇글자)를 반환하는 문자열 함수이다.
'전달받은 문자열의 수만큼 순환한다.
For i = Len(myString) To 1 Step -1
'mid함수로 한글자씩 변수에 담는다.
sTemp = Mid(myString, i, 1)
If sTemp = "\" Then
myString = Mid(myString, i)
'주어진 문자열에 대해 OLD TEXT를 NEW TEXT로 교체
sTrwhat = Replace(sTrwhat, myString, "")
Exit For
End If
Next i
Do
MyPos = InStr(1, sTrwhat, "\")
sTrwhat = Mid(sTrwhat, MyPos + 1)
Loop Until MyPos = 0
Trim_FolderName = sTrwhat
End Function
Function Trim_FolderPathName(sTrwhat) As String
Application.Volatile (True)
Dim MyPos As Integer
Dim i As Integer
Dim myString As String
Dim sTemp As String
myString = sTrwhat
'Len()함수는 문자열의 길이(몇글자)를 반환하는 문자열 함수이다.
'전달받은 문자열의 수만큼 순환한다.
For i = Len(myString) To 1 Step -1
'mid함수로 한글자씩 변수에 담는다.
sTemp = Mid(myString, i, 1)
If sTemp = "\" Then
myString = Mid(myString, i)
'주어진 문자열에 대해 OLD TEXT를 NEW TEXT로 교체
sTrwhat = Replace(sTrwhat, myString, "")
Exit For
End If
Next i
Trim_FolderPathName = sTrwhat
End Function
Function Extract_EachName(Myary)
Application.Volatile (True)
Dim i As Integer
Dim j As Integer
Dim NewFary
Dim aryFinal()
Dim myJudge As Boolean
Dim k As Byte
NewFary = WorksheetFunction.Transpose(Myary)
ReDim aryFinal(3, 1)
aryFinal(1, 1) = NewFary(1, 1)
aryFinal(2, 1) = NewFary(2, 1)
aryFinal(3, 1) = NewFary(3, 1)
For i = 1 To UBound(NewFary, 2)
myJudge = True
For j = 1 To UBound(aryFinal, 2)
If NewFary(3, i) = aryFinal(3, j) Then
myJudge = False '같으므로 뺀다
End If
Next j
If myJudge = True Then
ReDim Preserve aryFinal(3, UBound(aryFinal, 2) + 1)
aryFinal(1, UBound(aryFinal, 2)) = NewFary(1, i)
aryFinal(2, UBound(aryFinal, 2)) = NewFary(2, i)
aryFinal(3, UBound(aryFinal, 2)) = NewFary(3, i)
End If
Next i
'앞번호 다시 매기기
For i = 1 To UBound(aryFinal, 2)
aryFinal(1, i) = i
Next i
Extract_EachName = WorksheetFunction.Transpose(aryFinal)
'If k <> 1 Then MsgBox "중복된 항목이 " & vbCr _
& k - 1 & "개가 있어 그항목은 추가하지 않았습니다.", _
vbInformation, "만득"
End Function
Function Extract_EachName_2(Myary)
Application.Volatile (True)
Dim i As Integer
Dim j As Integer
Dim NewFary
Dim aryFinal()
Dim myJudge As Boolean
Dim k As Byte
NewFary = Myary
ReDim aryFinal(4, 1)
aryFinal(1, 1) = NewFary(1, 1)
aryFinal(2, 1) = NewFary(2, 1)
aryFinal(3, 1) = NewFary(3, 1)
aryFinal(4, 1) = NewFary(4, 1)
For i = 1 To UBound(NewFary, 2)
myJudge = True
For j = 1 To UBound(aryFinal, 2)
If NewFary(1, i) = aryFinal(1, j) Then
myJudge = False '같으므로 뺀다
'k = k + 1
End If
Next j
If myJudge = True Then
ReDim Preserve aryFinal(4, UBound(aryFinal, 2) + 1)
aryFinal(1, UBound(aryFinal, 2)) = NewFary(1, i)
aryFinal(2, UBound(aryFinal, 2)) = NewFary(2, i)
aryFinal(3, UBound(aryFinal, 2)) = NewFary(3, i)
aryFinal(4, UBound(aryFinal, 2)) = NewFary(4, i)
End If
Next i
Extract_EachName_2 = aryFinal
End Function
Function ColorName(i As Integer) As String
Application.Volatile
Dim cName As String
Select Case i
Case 1: cName = "검정": Case 2: cName = "흰색"
Case 3: cName = "빨강": Case 4: cName = "밝은녹색"
Case 5: cName = "파랑": Case 6: cName = "노랑"
Case 7: cName = "분홍": Case 8: cName = "밝은옥색"
Case 9: cName = "진한빨강": Case 10: cName = "녹색"
Case 11: cName = "진한파랑": Case 12: cName = "진한노랑"
Case 13: cName = "보라": Case 14: cName = "진한청록"
Case 15: cName = "회색25%": Case 16: cName = "회색50%"
Case 17: cName = "빙카색": Case 18: cName = "자주색"
Case 19: cName = "상아색": Case 20: cName = "연한옥색"
Case 21: cName = "진한자주": Case 22: cName = "산호색"
Case 23: cName = "바다색": Case 24: cName = "담청색"
Case 25: cName = "진한파랑": Case 26: cName = "분홍"
Case 27: cName = "노랑": Case 28: cName = "밝은옥색"
Case 29: cName = "보라": Case 30: cName = "진한빨강"
Case 31: cName = "진한청록": Case 32: cName = "파랑"
Case 33: cName = "하늘색": Case 34: cName = "연한옥색"
Case 35: cName = "연녹색": Case 36: cName = "연노랑"
Case 37: cName = "흐린파랑": Case 38: cName = "장미색"
Case 39: cName = "연보라": Case 40: cName = "살색"
Case 41: cName = "연한파랑": Case 42: cName = "연한녹청"
Case 43: cName = "라임": Case 44: cName = "금색"
Case 45: cName = "연한주황": Case 46: cName = "주황"
Case 47: cName = "청회색": Case 48: cName = "회색40%"
Case 49: cName = "진한옥색": Case 50: cName = "해록색"
Case 51: cName = "진한녹색": Case 52: cName = "황록색"
Case 53: cName = "갈색": Case 54: cName = "자주"
Case 55: cName = "남색": Case 56: cName = "회색80%"
Case -4142: cName = "무색"
End Select
ColorName = cName
End Function
Function CB_Color_Select(DecColor)
Select Case DecColor
Case &H0& '11
DecColor = 1
Case &H80& '21
DecColor = 9
Case &HFF& '31
DecColor = 3
Case &HFF00FF '41
DecColor = 7
Case &HFFC0FF '51
DecColor = 38
Case &H4080& '12
DecColor = 53
Case &H40C0& '22
DecColor = 46
Case &H80FF& '32
DecColor = 45
Case &HFFFF& '42
DecColor = 44
Case &HC0E0FF '52
DecColor = 40
Case &H4040& '13
DecColor = 52
Case &H8080& '23
DecColor = 12
Case &H80FF80 '33
DecColor = 43
Case &H80FFFF '43
DecColor = 6
Case &HC0FFFF '53
DecColor = 36
Case &H4000& '14
DecColor = 51
Case &H8000& '24
DecColor = 10
Case &HC000& '34
DecColor = 50
Case &HFF00& '44
DecColor = 4
Case &HC0FFC0 '54
DecColor = 35
Case &H404000 '15
DecColor = 49
Case &H808000 '25
DecColor = 14
Case &HC0C000 '35
DecColor = 42
Case &HFFFF80 '45
DecColor = 8
Case &HFFFFC0 '55
DecColor = 34
Case &H800000 '16
DecColor = 11
Case &HC00000 '26
DecColor = 5
Case &HFF0000 '36
DecColor = 41
Case &HFFFF00 '46
DecColor = 33
Case &HFFC0C0 '56
DecColor = 37
Case &H400000 '17
DecColor = 55
Case &HFF8080 '27
DecColor = 47
Case &H400040 '37
DecColor = 13
Case &H800080 '47
DecColor = 54
Case &HC000C0 '57
DecColor = 39
Case &H404040 '18
DecColor = 56
Case &H808080 '28
DecColor = 16
Case &HC0C0C0 '38
DecColor = 48
Case &HE0E0E0 '48
DecColor = 15
Case &HFFFFFF '58
DecColor = 2
Case &H8000000B '68
DecColor = -4142
End Select
CB_Color_Select = DecColor
End Function
Function NewText(sTemp As String)
'주어진 문자열에 대해 OLD TEXT를 NEW TEXT로 교체
sTemp = Replace(sTemp, "A", "A"): sTemp = Replace(sTemp, "a", "a")
sTemp = Replace(sTemp, "B", "B"): sTemp = Replace(sTemp, "b", "b")
sTemp = Replace(sTemp, "C", "C"): sTemp = Replace(sTemp, "c", "c")
sTemp = Replace(sTemp, "D", "D"): sTemp = Replace(sTemp, "d", "d")
sTemp = Replace(sTemp, "E", "E"): sTemp = Replace(sTemp, "e", "e")
sTemp = Replace(sTemp, "F", "F"): sTemp = Replace(sTemp, "f", "f")
sTemp = Replace(sTemp, "G", "G"): sTemp = Replace(sTemp, "g", "g")
sTemp = Replace(sTemp, "H", "H"): sTemp = Replace(sTemp, "h", "h")
sTemp = Replace(sTemp, "I", "I"): sTemp = Replace(sTemp, "i", "i")
sTemp = Replace(sTemp, "J", "J"): sTemp = Replace(sTemp, "j", "j")
sTemp = Replace(sTemp, "K", "K"): sTemp = Replace(sTemp, "k", "k")
sTemp = Replace(sTemp, "L", "L"): sTemp = Replace(sTemp, "l", "l")
sTemp = Replace(sTemp, "M", "M"): sTemp = Replace(sTemp, "m", "m")
sTemp = Replace(sTemp, "N", "N"): sTemp = Replace(sTemp, "n", "n")
sTemp = Replace(sTemp, "O", "O"): sTemp = Replace(sTemp, "o", "o")
sTemp = Replace(sTemp, "P", "P"): sTemp = Replace(sTemp, "p", "p")
sTemp = Replace(sTemp, "Q", "Q"): sTemp = Replace(sTemp, "q", "q")
sTemp = Replace(sTemp, "R", "R"): sTemp = Replace(sTemp, "r", "r")
sTemp = Replace(sTemp, "S", "S"): sTemp = Replace(sTemp, "s", "s")
sTemp = Replace(sTemp, "T", "T"): sTemp = Replace(sTemp, "t", "t")
sTemp = Replace(sTemp, "U", "U"): sTemp = Replace(sTemp, "u", "u")
sTemp = Replace(sTemp, "V", "V"): sTemp = Replace(sTemp, "v", "v")
sTemp = Replace(sTemp, "W", "W"): sTemp = Replace(sTemp, "w", "w")
sTemp = Replace(sTemp, "X", "X"): sTemp = Replace(sTemp, "x", "x")
sTemp = Replace(sTemp, "Y", "Y"): sTemp = Replace(sTemp, "y", "y")
sTemp = Replace(sTemp, "Z", "Z"): sTemp = Replace(sTemp, "z", "z")
sTemp = Replace(sTemp, 0, "0")
sTemp = Replace(sTemp, 1, "1")
sTemp = Replace(sTemp, 2, "2")
sTemp = Replace(sTemp, 3, "3")
sTemp = Replace(sTemp, 4, "4")
sTemp = Replace(sTemp, 5, "5")
sTemp = Replace(sTemp, 6, "6")
sTemp = Replace(sTemp, 7, "7")
sTemp = Replace(sTemp, 8, "8")
sTemp = Replace(sTemp, 9, "9")
sTemp = Replace(sTemp, "(", "(")
sTemp = Replace(sTemp, ")", ")")
sTemp = Replace(sTemp, "_", "_")
sTemp = Replace(sTemp, "-", "-")
sTemp = Replace(sTemp, ".", ".")
sTemp = Replace(sTemp, ",", ",")
sTemp = Replace(sTemp, " ", " ") '공백전각
NewText = sTemp
End Function
'내역관련 > 함수' 카테고리의 다른 글
vlookup의 활용(Ⅰ), 아파트 관리비 청구서 (0) | 2022.10.07 |
---|---|
sumif의 활용 (금전출납부) (1) | 2022.10.07 |
진수변환(사용자정의 함수) (1) | 2022.10.07 |
내컴퓨터에 연결된 프린터 포트 찾기 함수 (0) | 2022.10.07 |
SUMPRODUCT의 활용 (배열함수의 이해) (1) | 2022.10.06 |