• 締切済み

excel vbaでのxml出力がわかりません

EXCEL VBAでAPIを使い、XMLファイルを出力するプログラムを作っているのですが、うまくいきません。 機能としましては、指定したセルの範囲内にユーザーが入力した値を、XMLファイルとして出力するというものです。 ただXMLファイルを出力するだけなら自力でできたのですが、XMLファイルにセルの値を入れることができません。 どなたかご教授願います。

みんなの回答

  • kztk
  • ベストアンサー率53% (59/110)
回答No.2

※気分を害さずに読んでくださいね 書いていただいたすべての行が、 ・明らかに文法的に間違ってる ・無意味な処理 ・意味不明な処理 のいずれかになっています。このため、そもそも何がしたいのかが読み取れず、どう直すべきかも判断できません。 「Excelのどの範囲にどんな風に入力すると、どんなxmlファイルが出力されるようになればよいのか」要件を具体的に説明していただいたほうがよさそうです。

buckrush
質問者

お礼

確かに圧倒的に言葉が足りませんでした、それでも親切に対応していただきありがとうございます。

  • kztk
  • ベストアンサー率53% (59/110)
回答No.1

どうやろうとして、どうできないのかを教えてもらえませんか。 少なくとも以下の2つを。 ・現状の「XMLファイルにセルの値を入れる」部分の具体的なコード ・結果がどうなっているのか (「入れることができません」とは空っぽになるのか、 変な値が入るのか、エラーになるのか)

buckrush
質問者

補足

ご意見ありがとうございます。 XMLファイルは中身がまったくの殻になっています。 その部分のコードです。 set xml doc = new document set pi = DDQ,apenchild(DDQ.createProcessingIInstruction("xmi","version","1.0","encodeing","UTF-8")) with Range("C6,d&").EntireColum counter = counter + 1 Do while counter = Range("C6").value Do while counter = Range("D6").value Range("C6").Select Range("D6").Select Loop END with Call elem.setAttribute(version","2.0",.Range("","") xml doc.save("test.xml") C6、D6から値が存在する限り取得したいのですが、VBAをはじめて日が浅いため、お見苦しい点がありました申し訳ございません。

関連するQ&A

  • エクセルVBAで

    いつもお世話になっています。 エクセルVBAでセルのデータを読み込んでテキストファイルを出力するプログラムを書いています。 その際に、セル内のデータで「00」や「01」などのデータを読み込んで、そのままテキスト出力させたい場合関数の指定をStringにした場合「0」や「1」と出てしまいます。 「00」や「01」でテキスト出力させる方法を教えてください。 よろしくお願いいたします。

  • VBA(エクセル)で『17.10.11』を『平成17年10月11日』の変換出力

    エクセルのVBAでプログラムをつくりました。 その内容はシート1でいくつかセルに値を入力した後、 マクロを実行すると指定したセルのそのままの内容が、シート2へコピーされるというものです。 そこで『日付』を入力する欄があるのですが、 そこには『17.10.11』と入力する欄があるのです。 これをシート2へコピー出力するときに 『平成17年10月11日』という風に方変換して 出力したいのです。どうすればいいでしょうか? どうか教えていただけたらうれしいです。 ちなみにコピープログラムはこんな感じにしています s.Cells(r, 1).Copy Sheets("Sheet2").Range("A1") A1セルに日付を入れる欄があるのでここを型変換して出力したいのです。助けてください。

  • EXCEL VBAで違うファイルを参照したいです

    EXCEL VBAで困ってます アクティブなシートのセル番地"B1"に"外部"と値が入力されていて 同じアクティブなシートのセル番地"B2"に"仕様"と値が入力されています これをネットワーク先にあるエクセルファイルの中に該当する値が入力されているか を調べたいのですが、ロジックをどう書けば良いのかわかりませんので教えてください 例えばネットワーク先のファイルは仮に以下とします \\EXCEL\VBA\MACRO\Reference.xls このファイル内に上記の値が格納されています ただ、外部については"内部/外部"と入力されており、"仕様"は同じです ですので完全一致と部分一致(?)で比較をし、それぞれ"C1""C2"に合致すれば"○"、 無いもしく違えば"×"と値を返したいのです 尚且つ、ファイル内を指定するだけで、セル番地やシート名まで指定せずに比較したいのです どうかご教授頂きますようお願い致します

  • VBAで特定範囲のセルの平均値を順次出力したい

    VBAで特定範囲のセルの平均値を順次出力したい 前回の質問で誤りがあったため再投稿しました。 図のように各行列に値が出力されており,VBAで下記のように処理をしたいと考えています。 (1) 平均値を出すセルの範囲(例えば50X16)をVBAで指定できるようにし、その範囲の平均値を求める (2) (1)で求めた平均値を新しいSheetのあるセルに出力 (3) 上記の処理をある範囲(プログラムの中で変更)の列方向に適用していき,順次(2)のSheetに平均値を出力していく イメージとしては図のように黄(A2~J10)、青(A11~J20)、赤(A21~J30)の順に列方向の平均値を新たなSheetに出力したいのです。図では黄、青、赤の3領域しかありませんが、ここもプログラムで範囲指定をできるようにし、領域の数がいくらになってもよいようにしたいです。 どなたか上記の処理ができるプログラムを教えてください。よろしくお願いします。

  • Excelで値貼り出力をするVBAは作れますか?

    Excelで値貼り出力をするVBAは作れますか? Excel2003を業務で使用しています。 SUMPRODUCTなどのいろんな関数を使って売上げ報告書を集計し、 取引先に送っているのですが、計算式や参照式でファイルが重くなっているので、 値貼りをしたファイルを作成したいのです。 そこで、VBAを使って以下のどちらかを実現することは可能でしょうか。 ・報告書の全シートの全書式(罫線・色)と値を別ファイルに出力 ・書式のみ、全て空欄の別ファイルに全シートを値貼り これが出来るととても助かるので、ご教示ください。宜しくお願いいたします。

  • VBAマクロでCSV出力

    はじめまして、よろしくお願いします。 ExcelのVBAマクロで 特定のセルの範囲を「シート名.csv」で出力するようなプログラムを書きたいです。 例)シート名「TEST」内にあるマクロボタンを押すと  A1:A10のセルの内容が「TEST.csv」(アスキー形式ならなんでも)  に出力される。 どういうやり方があるか、お勧めのサイト等、 ご教授いただけないでしょうか? 以上、よろしくお願いいたします。

  • Excel VBA 表の分割ってできます?

    Excel VBA 表の分割ってできます? Excelのバージョンは2007と19997です。 添付画像みたいに特定のデータを他のシートに別々に分割して出力することってできます? ※一個一個セルの値見てコピペするやり方は除いて!!! 簡単にExcelの機能か何かでできませんかね><なんか処理が重くならない良い方法をご教授願います。

  • エクセル2003で作ったVBAが2007で動かない

    現在、エクセル2003で作成したVBAがエクセル2007だと、マクロを有効にして起動させようとするとコンパイルエラーとなって動作しない現象が起きていて困っています。 どなたか、解決方法をご教授頂けないでしょうか? ・VBAを含んだファイルを開いて、マクロを有効にすると ”コンパイルエラー:変数が定義されていません” というエラーボックスが出てきてプログラムの矢印のポイントがPrivate Sub User Form_Initialize() のところを指したまま止まってしまう。 ・このVBAはエクセルの表の書かれたデータをRS-232Cで出力するようなプログラムが使われていて、MSCommというものが使われています。この関連のプログラムが2003と2007では互換がないということはありますでしょうか? どうぞ、よろしくお願い致します。

  • Excel VBAでセルの色塗りについて

    VBAの初心者です。 Excel2003であるセル範囲のセルが色Aに塗られています。 今、このセル範囲でセルの値により5つの条件でセルの色を塗り分け て、条件に合致しないものは元の色のままにしたのですが、For Each とCASEステートメントを使ったVBAプログラムを教えて下さい。

  • Excel VBAでの名前の使い方

    Win7/Excel 2010で、セル範囲に名前を付け、VBAでデータを使おうと思います。セル範囲内の特定のセルの値を使おうと思いますが、方法はあるでしょうか? 行・列番号で、データを呼び出すプログラムでは、他の部分でセルの追加、削除をしたときでも、行列番号がずれてしまい、プログラムをその都度書き換える必要があります。セル範囲の名前を用い、範囲内のどの位置かを指定することができれば、プログラムを変える必要がなくなります。セルの1つづつに名前を付ければ、可能ですが、この場合、配列として取扱い難くなってしまいます。

専門家に質問してみよう