VB(A)

화학식에서 C 의 원자의 합

당근쨈 2015. 3. 19. 20:48

화학식이 있고 이 중 C의 원자값만 합계를 내는 사용자정의함수

화학식에서 원소만 뽑아내는 것이 포인트.


1. 원소별로 분리를 하고

2. C만 포함된 원소를 골라내서

3. C의 개수를 각각 더한다.


Function findC(Chemical As StringAs Integer
 
    Dim i As Integer, j As Integer
    Dim strText As String, strChar As String
    Dim arrC() As String
    Dim sumArr As Integer
    
    '원소별 분리
    For i = 1 To Len(Chemical)
        strChar = Mid(Chemical, i, 1)
            
        '알파벳이 있고 글자가 모이면 원소 분리
        If Asc(strChar) >= 65 And Len(strText) Then
            ReDim Preserve arrC(j)
            arrC(j) = strText
            strText = strChar
            j = j + 1
        Else
            strText = strText & strChar
        End If
            
        If i = Len(Chemical) Then
            ReDim Preserve arrC(j)
            arrC(j) = strText
        End If
    Next i
        
    'C의 합
    For i = 0 To UBound(arrC)
        If InStr(arrC(i), "C"Then
        
            'C가 한글자일 때는 1, 그 외에는 숫자
            Select Case Len(arrC(i))
                Case 1: j = 1
                Case Else: j = Mid(arrC(i), 2)
            End Select
            
            sumArr = sumArr + j
            
        End If
    Next i
    
    findC = sumArr
    
End Function
cs


'VB(A)' 카테고리의 다른 글

연속된 숫자는 ~로 표현하기  (0) 2015.03.26
자동필터 - 거래명세표 작성  (0) 2015.03.21
영어문장 섞기  (26) 2015.03.18
다른 파일의 차트를 불러와 정렬하기  (0) 2015.03.16
차트 생성 후 이미지 저장  (0) 2015.03.16