【Excel マクロ】スネークケース・キャメルケース変換 ユーザー定義関数 | demicadeのブログ

demicadeのブログ

iPhoneアプリ開発素人のメモ的なブログです。

エクセル マクロ 便利なのでメモ。

 

ネタ元
http://ezolab-blog.net/blog-entry-88.html

 

 

スネークケースをキャメルケースに変換

    Public Function SnakeToCamel(ByVal val As String, Optional ByVal isFirstUpper As Boolean = False) As String
     
        Dim ret As String
        Dim i   As Long
        
        Dim snakeSplit As Variant
        snakeSplit = Split(val, "_")
        
        For i = LBound(snakeSplit) To UBound(snakeSplit)    
            ret = ret & UCase( _
                              Mid(snakeSplit(i), 1, 1)) & _
                              Mid(snakeSplit(i), 2, Len(snakeSplit(i)) _
                              )
        Next
     
        If isFirstUpper Then
            SnakeToCamel = ret
        Else
            SnakeToCamel = LCase(Mid(ret, 1, 1)) & Mid(ret, 2, Len(ret))
        End If
        
     
    End Function


キャメルケースをスネークケースに変換

    Public Function CamelToSnake(ByVal val As String, Optional ByVal isUpper As Boolean = False) As String
     
        Dim ret As String    
        Dim i      As Long
        Dim length As Long

       
        length = Len(val)
        
        For i = 1 To length       
            If UCase(Mid(val, i, 1)) = Mid(val, i, 1) Then
                ' 大文字             
                If i = 1 Then
                    ' 最初の文字なら、アンダースコアは付与しない
                    ret = ret & Mid(val, i, 1)
                
                ElseIf i > 1 And UCase(Mid(val, i - 1, 1)) = Mid(val, i - 1, 1) Then
                    ' 前の文字が大文字なら、アンダースコアは付与しない
                    ret = ret & Mid(val, i, 1)
                Else
                    ' 小文字なのでアンダースコアを付与
                    ret = ret & "_" & Mid(val, i, 1)
                End If               
            Else
                ' 小文字
                ret = ret & Mid(val, i, 1)               
            End If          
        Next
     
        If isUpper Then
            CamelToSnake = UCase(ret)
        Else
            CamelToSnake = LCase(ret)
        End If
        
    End Function

 

demicadeが昔苦労したなぁ・・・・。(遠い目)ってことが書いてあるサイトを見つけたので、リンク貼っておきます。

初心者の時の苦しみ:初心者プログラマがスキルアップするための方法

30代の転職:(経験者)IT業界に30代未経験で転職する方法