• ベストアンサー

Excelへのデータ送信

CSVファイルから構造体にデータを取り込んでから、そのデータをExcelにセルを指定して取り込むことは可能ですか? 構造体には取り込めたのですが、そこからExcelにデータを遅れません。 アドバイス下さい! お願いします!

  • dmn
  • お礼率31% (10/32)

質問者が選んだベストアンサー

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

プロジェクトの参照設定で Microsoft Excel x.0 Object Libraryを指定 (x.0はエクセルのバージョンによって、違う数字です) 以下のコードでデータの出力が可能です。 Sub Main()   Dim xlApp  As Excel.Application   Dim xlBook As Excel.Workbook   Dim xlSheet As Excel.Worksheet     'エクセル起動   Set xlApp = New Excel.Application   '(1)ワークブックを開く場合   xlApp.Workbooks.Open ("c:\test.xls")   '(2)ワークブックを新規で追加する場合   xlApp.Workbooks.Add      '現在カレントのブックを対象とする   Set xlBook = xlApp.ActiveWorkbook     'カレントブックのシート1を指定   Set xlSheet = xlBook.Worksheets(1)   xlSheet.Select     'エクセルへの出力方法(1)   xlSheet.Cells(2, 3).Value = "あ"   'エクセルへの出力方法(2)   xlSheet.Range("B2").Value = "い"     'エクセルアプリケーション表示   xlApp.Visible = True     '閉じる時の「保存しますか」を表示させない   xlBook.Saved = True     Set xlSheet = Nothing   Set xlBook = Nothing   Set xlApp = Nothing End Sub 構造体は独自で宣言した構造ですよね。それはエクセルじゃなくても、独自の構造体は他への流用は難しいと思います。 エクセルには一つずつ書き込むか、構造体ではなく配列にして、エクセルに出力する時に範囲指定をして、まとめて出力する方法があります。 'エクセルへの出力方法(2)をちょっと改造して Range(開始のセル,終了のセル).Value = 配列変数 といった書式です。

dmn
質問者

お礼

ありがとうございました。 この通りにやって無事解決しました。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

構造体をEXCELは理解してくれないでしょうが。 構造体のメンバーをCHR(9)で連結して送信すればよかったような記憶があります。

関連するQ&A

  • Excelの範囲指定セルににcsvファイルのデータを貼り付け

    Excelファイルの任意のセルにCSVファイルのデータを貼り付けたいと思っています。 各ワークシートにCSVファイルのデータを読み込むマクロを書いて実行していたのですが、ファイルが増えてしまったのでもっと簡単に処理ができたら、と思い相談させていただきます。 Visual C# 2008の勉強を始めて間もないので初歩的な質問かと思いますが、宜しくお願い致します。 希望する処理の流れは 1.「Excelファイル選択」ボタンを押すと、指定のフォルダ内のxlsファイルをリストボックスに表示 2.Excelファイル選択 3.「CSVファイル選択」ボタンを押すと、指定のフォルダ内のcsvファイルをリストボックスに表示 4.Excelファイルに対応するCSVファイル選択 5.「データ読込」ボタンでテキストファイルのデータをExcelファイルの指定のセルに貼り付け 6.Excelファイルを保存して終了 1.と3.のリストボックスへのファイル表示はできているのですが、選択したExcelファイルにcsvファイルのデータの貼り付けの方法がわかりません… それぞれのファイルを変数に格納して、更にcsvファイルのデータを配列変数に流して、繰り返し処理で貼り付けていくのかな?と想像しているのですが… http://support.microsoft.com/kb/302096/ja 上記のページを参考にしたのですが、外部ファイルのデータを指定のセルに入力するにはどうしたらよいのかわかりませんでした。 ・Excelファイルの指定のセルはB12~H1011までの7列1000行です。 ・csvファイルは1000行に満たないこともあります。 ・入力するデータ型は整数と文字列です。 PC環境 Windows XP SP3 Excel 2007 Visual C# 2008 要領を得ない説明で申し訳ありませんが、どうぞ宜しくお願い致します。

  • エクセルでcsvデータを自動読み込みする方法(至急)

    csv形式のファイル(内容は計測値データ)をエクセルに読み込み、csvファイルの各データが規定値内に納まっているかの確認が容易できる方法を探しています。 このとき条件として、 (1)csvファイル内のデータは10項目程度。 (2)csvデータはランダムに更新される。 (3)エクセルに読み込むときはエクセルシート内の決められたセルにそれぞれデータが格納されること。 (例)csvファイルに"110"と"119"の2種類のデータがあった場合、あらかじめxlsファイルのセルA1に「警察」、セルA2に「消防署」と記入しておき、csvファイルのデータを読み込んだとき、セルB1に"110"、セルB2に"119"と入力される。 (4)csvファイル自体は開かず、必要なときにあらかじめ作成したxlsファイルを立ち上げると、自動でcsvファイルの内容を吸い上げる。 (5)入力されたデータの適否をそれぞれ判定する。 (6)xlsファイルを立ち上げている間にcsvファイルが更新された場合、xlsファイルの更新方法は手動と自動を選択できる。 こんなこと出来るでしょうか? 特に(4)が困っています。csvファイルをエクセルで開いた状態であれば、この内容で出来たのですが・・・。 どなたか良い方法があったら教えて下さい。お願いします。

  • 複数のCSVファイルからのデータ取得(VBA)

    エクセルVBAで、エクセルの指定シートに複数のCSVファイルからデータを取得する方法を ご教授お願います。 エクセルの指定シートの指定されたセルに、複数のCSVファイルから指定箇所のデータを 取得し転送する方法を考えていますが、どうもうまくいきません。 たとえば、 CSVファイル(1) A5(A)           A10(B) CSVファイル(2) A5(C)           A10(D)      CSVファイル(3) A5(E)           A10(F)         ・      ・      ・ と、指定されたセルからデータを取得し、 エクセルの指定シートの表に                    CSVファイル                                 (1)  (2)  (3) ・ ・ ・ ------------------------------------------- A5から取得したデータ    A   C   E ・ ・ ・ A10から取得したデータ    B   D   F ・ ・ ・ ------------------------------------------- と、いうように転送して貼り付けていきたいです。 いろいろ調べてみたのですが、このような方法が見つけられませんでした。 ぜひ、皆様のお知恵をお貸しください。 宜しくお願い致します。

  • エクセルVBAで CSVファイルからのデーター参照

    エクセル2000を使用しています。 CSVで社員リストを作成して、エクセル上の指定のセルに 氏名を入力すると、年齢、性別、入社日等が他のセル表示出来るように 指定のですが、VBAでやるとすれば、どの様なコードになるのでしょうか??  現在は、OPENイベントを使用して、エクセルの別のシートにCSVファイルの全ての内容を読み込んでいます。そしてMAINのシートではLOOKUPを使用しているのですが、ファイル起動時に時間が掛かり、困っています。 エクセルとCSVの間で直接、データーのやり取りをしたいのですが・・・。

  • エクセルのデータから別のエクセルのデータを引く

    エクセルのcsvファイルが2つあります。 一つのcsvファイルのデータから、もう一つのcsvファイルのデータを引きたいのですが、方法を伝授していただけますでしょうか。 詳しく言いますと、一つのcsvにはニックネームが200件あり、もう一つのcsvにはニックネームが150件あります。 「200-150=50」 2つのcsvにカブっていないデータを抽出したいのです。 Microsoft Excel 2003を使用しています。 よろしくお願いします。

  • CSVをエクセルの指定の位置に

    CSV出力したデータをエクセルで読み取るときに エクセルの指定のセルに指定の項目が入るようにしたいのですがどうすればいいのでしょうか? CSVデータをそのまま読み込むと項目が並んで表示されてしまいます。 エクセルで作ったフォーマットにCSVデータを反映させて印刷したいのです。

  • CSVをエクセルの指定セルへ、または専用ソフト

    CSVで出力したデータをエクセルで読み取る場合に、エクセルの 指定セルに、指定の項目が入るようにしたいのですが方法はあるのでしょうか。 CSVデータをそのまま読み込むと項目が並んで表示されてしまいます。 エクセルで作ったフォーマットにCSVデータを反映させて印刷したいのです。 また特にエクセルにはこだわりません、専用ソフトを使ってもいいので、自分で作ったフォームに自動で入ることが目的です。 詳しい方がいらっしゃいましたらアドバイスよろしくお願いいたします。

  • CSVデータをエクセルで表にしたい

    CSVデータをエクセルで各セルに分けて表にしたいのですが、どの様にしたら良いでしょうか。 よろしくお願い致します。

  • データベースからExcelへのエクスポート

    例えばファイルメーカーProからデータをCSV形式でエクスポートし、結果をExcelで開くと、セルの表示形式がデータの内容によってシステムが勝手に決めてしまうように思われます。 例えばファイルメーカーProの元データが[2004-13]はExcelでも[2004-13]と表示されますが、元データが[2004-12]はExcelで[Dec-04]と表示されてしまいます。CSVファイルをメモ帳で開いてみると原型のまま[2004-12]となっています。 あらかじめ全セルを「文字列」に設定したExcelでCSVを開く、そんなことはできないでしょうか?

  • いきなりPDFtoデータでエクセルにデータ変換

    ソースネクスト社『いきなりPDFtoData』をダウンロード購入しました。 早速手持ちのPDFを変換してみましたが、作成ファイルをEXCELに指定、PDF解析の使用にチェックを入れて、ファイルをドラッグ&ドロップしてみたところ、エクセルファイルにはなりましたが、図形としてワークシートに貼られた状態でした。セル単位にデータが入るものと思っておりましたが、ちがうのでしょうか? セルにデータが入るのだとすれば、どうやったらいいのでしょうか??