C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 別ファイルに書き込みたい!


(過去ログ 81 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■47785 / inTopicNo.1)  別ファイルに書き込みたい!
  
□投稿者/ saya (1回)-(2010/03/15(Mon) 12:15:55)

分類:[.NET 全般] 

VBA6.0

CommandButtunがあるファイルとは別の、指定したファイル(SA.xls)にデータを書き込みたいのですが、
以下の記述だとCommandButtonのついている同じファイルにデータが書き込まれ、
SAファイルを開こうとすると、「データが読み込めません」となって、
何も書き込まれません。
どうすればよいでしょうか??
よろしくお願いいたします。



Private Sub CommandButton1_Click()

Dim i As Integer
Dim xml As MSXML2.DOMDocument
Dim xmlpath As String
Dim xmlel As IXMLDOMElement
Dim xmlnodl As IXMLDOMNodeList
Dim xmlnode As IXMLDOMNode

Dim lngRow As Long
Dim intFileNum As Integer
Dim strBand As String
Dim strTitle As String
Dim strComment As String

intFileNum = FreeFile

'書き込みファイルのOPEN
Open "SA.xls" For Output As #intFileNum

'読み込みファイルの設定
Set xml = New MSXML2.DOMDocument
xmlpath = "C:\Documents and Settings\KIOSK\デスクトップ\20100219-排出指示緊急対応用データ\T0032\pullreceipts_T00000032_20100214_0000.xml"

'ファイル読み込み
xml.Load (xmlpath)

Set xmlel = xml.DocumentElement
Set xmlnodl = xmlel.getElementsByTagName("productid")
i = 1
For Each xmlnode In xmlnodl

'ファイルの書き込み
Workbook("SA.xls").Worksheets("SA").Range("B" & i).Value = xmlnode.Text
i = i + 1
Next

'書き込みファイルのCLOSE
Close #intFileNum

Set xml = Nothing

End Sub

引用返信 編集キー/
■47789 / inTopicNo.2)  Re[1]: 別ファイルに書き込みたい!
□投稿者/ よねKEN (443回)-(2010/03/15(Mon) 13:07:48)
回答ではありません。
「xmlpath =〜」のパスの部分は伏せた方がいいのでは?
引用返信 編集キー/
■47815 / inTopicNo.3)  Re[1]: 別ファイルに書き込みたい!
□投稿者/ やじゅ (1558回)-(2010/03/15(Mon) 22:22:27)
やじゅ さんの Web サイト
No47785 (saya さん) に返信
> CommandButtunがあるファイルとは別の、指定したファイル(SA.xls)にデータを書き込みたいのですが、
> 以下の記述だとCommandButtonのついている同じファイルにデータが書き込まれ、
> SAファイルを開こうとすると、「データが読み込めません」となって、
> 何も書き込まれません。
> どうすればよいでしょうか??

まず、文章をもう少し整理して他の方が分かるようにしてください。
最終目的は分かるのですが、目的に達するまでの手順がよく分からない。

引用返信 編集キー/
■47819 / inTopicNo.4)  Re[1]: 別ファイルに書き込みたい!
□投稿者/ Jitta on the way (581回)-(2010/03/16(Tue) 07:26:04)
No47785 (saya さん) に返信
> VBA6.0
>
> CommandButtunがあるファイルとは別の、指定したファイル(SA.xls)にデータを書き込みたいのですが、
> 以下の記述だとCommandButtonのついている同じファイルにデータが書き込まれ、
> SAファイルを開こうとすると、「データが読み込めません」となって、
> 何も書き込まれません。
> どうすればよいでしょうか??
> よろしくお願いいたします。
>
>
>
> Private Sub CommandButton1_Click()
>
> Dim i As Integer
> Dim xml As MSXML2.DOMDocument
> Dim xmlpath As String
> Dim xmlel As IXMLDOMElement
> Dim xmlnodl As IXMLDOMNodeList
> Dim xmlnode As IXMLDOMNode
>
> Dim lngRow As Long
> Dim intFileNum As Integer
> Dim strBand As String
> Dim strTitle As String
> Dim strComment As String
>
> intFileNum = FreeFile

新しい「ファイル」を開くのではなく、新しい「ワークブック」を開かなければならないのでないですか?
引用返信 編集キー/
■47820 / inTopicNo.5)  Re[1]: 別ファイルに書き込みたい!
□投稿者/ 魔界の仮面弁士 (1550回)-(2010/03/16(Tue) 09:16:23)
No47785 (saya さん) に返信
>     '書き込みファイルのOPEN
>     Open "SA.xls" For Output As #intFileNum
この場合、Open /Close ステートメントは不要です。
Open ステートメントは、Workbook として開くためのものではなく、
Print # ステートメント等と組み合わせて使う物です。

Workbook として生成したいのであれば、
  既存の SA.xls を編集する場合は「Workbooks.Open メソッド」+「Workbook.Save   メソッド」
  新たに SA.xls を作成する場合は「Workbooks.Add  メソッド」+「Workbook.SaveAs メソッド」
を試してみてください。


>         'ファイル読み込み
>         xml.Load (xmlpath)
VBA では、引数を取らないメソッドの呼び出しに括弧を付けません。この場合には、
          xml.Load xmlpath
もしくは、
          Call xml.Load(xmlpath)
という記述を利用しましょう。


>     Set xml = Nothing
変数 xml は Nothing 代入しているのに、そのほかのオブジェクトは Nothing 代入しないのは何故でしょうか?

今回の場合、変数のスコープがプロシージャ レベルなので、Nothing を代入する事にはあまり意味がありませんが、
代入するならするで、一部のオブジェクト変数のみを処理するというのは不自然に思えます。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -