1

すべての Excel データを次のような配列形式のテキスト ファイルに出力する関数があります。

[
['ID', 'Label', 'Longitude', 'Latitude', 'Country', 'Region', 'Ttl_wt_Flw_thru', 'Sum-of-BOL-Wt', 'Count of WDR_Ref', 'Ratio'],
['AEAUH', 'Abu Dhabi, United Arab Emirates', 54.3666667, 24.4666667, 'AE', 'EAME', 66, 30, 8432, 281.066666666667],
['AEDXB', 'Dubai, United Arab Emirates', 55.307485, 25.271139, 'AE', 'EAME', 682, 3, 8369, 2789.66666666667] ]

このような配列を書き込むための私のコードは次のとおりです。

Function FillSourceArray()
    Dim i As Long, j As Long, s As String
    Dim Lastrow As Double
    Dim S1 As String

    'Opens file
    FilePath = FilePath & "DataArray" & ".txt"
    Open FilePath For Output As #1
    'Read the Source Data
    DataArray = Sheets("Nodes").Cells(1).CurrentRegion.Value
    'Determine the Lastrow
    Lastrow = Sheets("Nodes").Range("A999999").End(xlUp).Row
    Print #1, "["
    'This "for" loop reads all the data in excel sheet into a string
    For i = 2 To UBound(DataArray)
        s = "["
        For j = 1 To UBound(DataArray, 2)
            If IsNumeric(DataArray(i, j)) Then
                s = s & DataArray(i, j) & ", "
            Else
                s = s & "'" & DataArray(i, j) & "', "
            End If
        Next
        If i = Lastrow Then
            Print #1, Replace(s & "]", ", ]", "]")
        Else
            Print #1, Replace(s & "]", ", ]", "],")
        End If
    Next

    Print #1, "]"
    Close #1

私の仕事: Excel シートのデータを読み取り、それを (上記の形式で) 配列に形成し、その配列を関数 FillSourceArray() に返したいと考えています。

配列をこの形式で出力したい別のモジュールからこの関数を呼び出す必要があります。

4

0 に答える 0