2018年12月11日火曜日

変換表を連想配列に読み込む

データクレンジングをする時に、データを標準化する変換関数を作ろうと思ったんだけど、関数内に変換用の配列をずらずら書くのもメンテも面倒そう。
ワークシートに変換表を作って読み込むのが明解なやり方な気がする。
ワークシートは一回しか読みたくないし、変換する訳なので、名前通りにDictionaryに読み込めばいいのかな。

取りあえず、2列の変換表を連想配列に読み込む関数。


サンプルコード


    Function LoadOnDic(ByVal pRange As Range) As Object
    ''2列のRangeをDictionaryに読み込む関数
    
        Set LoadOnDic = Nothing
        
        Dim DIC As Object
        Dim arr As Variant
        Dim i   As Integer
        
        Set DIC = CreateObject("Scripting.Dictionary")
        
        arr = pRange
        
        For i = LBound(arr, 1) To UBound(arr, 1)
            DIC(arr(i, 1)) = arr(i, 2)
        Next i
        
        Set LoadOnDic = DIC
    
    End Function

呼び出し側
    Sub 二列の表を連想配列に読み込む()
        Dim r As Range
        Dim DIC As Object
        
        Set r = Worksheets("法人略称").Range("A3:B11")
        Set DIC = LoadOnDic(r)
        
        MsgBox DIC("/")
    
    End Sub

作成中だけど、一旦公開。
略称 標準化
(株) 株式会社
(有) 有限会社
(名) 合名会社
(資) 合資会社
(同) 合同会社
(医) 医療法人
(医社) 医療法人社団
(医財) 医療法人財団
(社医) 社会医療法人
(一財) 一般財団法人
(財) 一般財団法人
(公財) 公益財団法人
(一社) 一般社団法人
(社) 一般社団法人
(公社) 公益社団法人
(宗) 宗教法人
(学) 学校法人
(福) 社会福祉法人
(相) 相互会社
(特非) 特定非営利活動法人
(独) 独立行政法人
(地独) 地方独立行政法人
(弁) 弁護士法人
(行) 行政書士法人
(司) 司法書士法人
(税) 税理士法人
(大) 国立大学法人
(農) 農事組合法人

0 件のコメント:

コメントを投稿