コーディングメモ

忘れっぽい自分に

【ExcelVBA】ワークシートにパラメタをセットしてVBAから取得する方法

f:id:trying2:20171114052244p:plain## 1. ソースとパラメタシート

1-1. 構造体定義

Type ParameterStructure
    key As String
    value As String
End Type

1-2. パラメタを構造体にセット

Sub setParameter()
    Dim i As Integer
    Dim maxrow As Integer
    Dim idx As Integer
    
    Worksheets("parameter").Activate
    
    Range("A1").Select
    maxrow = Selection.End(xlDown).Row
    
    idx = 0
    
    For i = 2 To maxrow Step 1
        ReDim Preserve Parameter(idx)
        
        Parameter(idx).key = Range("A" & i).value
        Parameter(idx).value = Range("B" & i).value
        
        idx = idx + 1
    
    Next
    
End Sub

1-3. 構造体にセットしたパラメタを取得

Function getParameter(key As String) As String

    Dim i As Integer
    
    i = 0
    
    For i = 0 To UBound(Parameter) Step 1
        
        If Parameter(i).key = key Then
            getParameter = Parameter(i).value
        End If
    
    Next

End Function

1-4. parameterというシート名でパラメタシートを作成する。

f:id:trying2:20171114052244p:plain
Excelファイルに記載するパラメタシート内容

2.使用方法

2-1 setParameterサブルーチンをコールしてパラメタ内容を構造体にセット

Call setParameter

2-2 getParameterファンクションをコールして、構造体にセットしたパラメタを取得

用法:getParameter(KeyValue) 戻り値:パラメタの値

'パラメタキー:OutpuDirの値を取得する
outputdir = getParameter("OutpuDir")