0
私は複数のクライアントの毎月のレポートを生成するExcelマクロを持っています。ここで質問された他の人の質問(Is it possible in VBA convert Excel table to json)からこのコードを入手しましたが、コードは1回だけ実行され、同じ名前のたびに1つのファイルが生成されます。私はJSONにExcelシートを変換してAzure BLOBにアップロードできるようにしたい。複数のレポートに対してVBA ExcelをJSONに実行するにはどうすればよいですか?
Sub export_in_json_format()
Dim fs As Object
Dim jsonfile
Dim rangetoexport As Range
Dim rowcounter As Long
Dim columncounter As Long
Dim linedata As String
' change range here
Set rangetoexport = Sheet2.Range("a2:b6")
Set fs = CreateObject("Scripting.FileSystemObject")
' change dir here
Set jsonfile = fs.CreateTextFile("C:\Users\Satwant\Desktop\" & "MonthlyReport.json", True)
linedata = "{""Output"": ["
jsonfile.WriteLine linedata
For rowcounter = 2 To rangetoexport.Rows.Count
linedata = ""
For columncounter = 1 To rangetoexport.Columns.Count
linedata = linedata & """" & rangetoexport.Cells(1, columncounter) & """" & ":" & """" & rangetoexport.Cells(rowcounter, columncounter) & """" & ","
Next
linedata = Left(linedata, Len(linedata) - 1)
If rowcounter = rangetoexport.Rows.Count Then
linedata = "{" & linedata & "}"
Else
linedata = "{" & linedata & "},"
End If
jsonfile.WriteLine linedata
Next
linedata = "]}"
jsonfile.WriteLine linedata
jsonfile.Close
Set fs = Nothing
End Sub
一意の名前を持つ複数のクライアントに対して複数回実行する方法はありますか?
ご回答いただきありがとうございます。ファイル名を尋ねずに、現在のシートの名前を取得する方法はありますか? – Satwant
's = inputbox("使用する名前を入力 "、デフォルト:= activesheet.name)'または単にシート名を取得するには、この 's = activesheet.name '。 –
@ KazimierzJaworありがとう、私はそれを試みます。 – Satwant