- - PR -
Excelからxmlファイルの出力について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-05-28 22:40
Excelの表からxmlファイルの出力についての質問です。
単純にExcelの表からセルの値をとってきてファイル出力は出来たのですが、UTF-8の文字コードを指定してxmlファイルを出力でどうしてもそこでつまずいてしまいました。 ・CreateObject ・Charset あたりを使うのかなと思っているのですが、中々上手くいきません。 文字コード指定をするにはどのようにしたら良いのでしょうか? ソースコードは以下の通りです。 Sub WRITE_TextFile() Const cnsTITLE = "xmlファイル出力処理" Const cnsFILTER = "xmlファイル (*.xml),*.xml" Dim xlAPP As Application ' Applicationオブジェクト Dim intFF As Integer ' FreeFile値 Dim strFILENAME As String ' OPENするファイル名(フルパス) Dim strREC As String ' 書き出すレコード内容 Dim GYO As Long ' 収容するセルの行 Dim GYOMAX As Long ' データが収容された最終行 Dim lngREC As Long ' レコード件数カウンタ ' Applicationオブジェクト取得 Set xlAPP = Application ' 「名前を付けて保存」のフォームでファイル名の指定を受ける xlAPP.StatusBar = "出力するファイル名を指定して下さい。" strFILENAME = xlAPP.GetSaveAsFilename(InitialFilename:="ErrorMessage.xml", _ FileFilter:=cnsFILTER, Title:=cnsTITLE) ' キャンセルされた場合は以降の処理は行なわない If StrConv(strFILENAME, vbUpperCase) = "FALSE" Then Exit Sub ' 収容最終行の判定(Excel認知の最終行から上に向かってデータがある行を探す) GYOMAX = Cells.SpecialCells(xlCellTypeLastCell).Row Do While Cells(GYOMAX, 1).Value = "" GYOMAX = GYOMAX - 1 Loop If GYOMAX < 2 Then xlAPP.StatusBar = False MsgBox "テキストをA列2行目から入力してから起動して下さい。", , cnsTITLE Exit Sub End If ' FreeFile値の取得(以降この値で入出力する) intFF = FreeFile ' 指定ファイルをOPEN(出力モード) Open strFILENAME For Output As #intFF ' 2行目から開始 GYO = 2 Print #intFF, "<Message>" ' 最終行まで繰り返す Do Until GYO > GYOMAX ' A列内容をレコードにセット(先頭は2行目) Print #intFF, "<add key = " & """" & Cells(GYO, 2).Value & "_" & Cells(GYO, 3).Value & "_" & Cells(GYO, 4).Value & """" & " value=" & """" & Cells(GYO, 6).Value & """" & " />" ' レコード件数カウンタの加算 lngREC = lngREC + 1 xlAPP.StatusBar = "出力中です....(" & lngREC & "レコード目)" ' 行を加算 GYO = GYO + 1 Loop Print #intFF, "</Message>" ' 指定ファイルをCLOSE Close #intFF xlAPP.StatusBar = False ' 終了の表示 MsgBox "ファイル出力が完了しました。" & vbCr & _ "レコード件数=" & lngREC & "件", vbInformation, cnsTITLE End Sub ExcelはOffice2000です。 よろしくお願いします。 |
1