• ベストアンサー

VB2008 Excelにデータ出力

VB2008で、Timerで更新されるTextBoxの数値をExcelに順次出力する(セルA1に出力したら、次の値をA2に出力、・・・)プログラムを作りたいのですが、どんなソースにすればよいか分かりません。 Web検索もしましたが、キーワードが悪かったのか、適したサンプルも見つかりませんでした。 VB Form上のTimerでTextBoxの数値を更新する部分はできていますので、指定のフォルダ内のExcelを開いてデータをセルに出力する方法を教えてください。 参考URLなどもあれば教えてください

  • T-kwd
  • お礼率100% (7/7)

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

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

vb excel 操作 で検索(例えばgoogle)すればいくらでも解説サイトが出てきます。 例えば http://www.red.oit-net.jp/tatsuya/vb/Excel.htm http://homepage1.nifty.com/rucio/main/shokyu/jugyou25.htm http://hanatyan.sakura.ne.jp/vbhlp/excel1.htm .....

T-kwd
質問者

お礼

ありがとうございます。 流用して(必要部分は編集)とりあえず指定したExcelを開くところまでやってみましたが、指定したExcelは開かず、新規Bookが開いて、 VB上で 「COMExceptionはハンドルされませんでした」 「メンバが見つかりません」 のエラーメッセージが出てしまいます。 「COMExceptionはハンドルされませんでした」に関しては、 WEB検索しましたが、改善できる内容がありませんでした。 Microsoft Excel5.0オブジェクトライブラリの参照は追加しています。 どこを修正すればよいのかご教授願います。 Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet xlApp = CreateObject("Excel.Application") xlBook = xlApp.Workbooks.Open("フルパス") xlSheet = xlBook.Worksheets("シート名") xlApp.Visible = True xlSheet.Activate()

T-kwd
質問者

補足

ボタンクリックでExcelを開こうとしたのですが、 新規Bookが開いてしまったのは、最初のボタンクリックの構文に間違いがあったからでした。 また、Dim *** As ***の「As ***」以降を削除することで、 指定のExcelは開きました。

関連するQ&A

  • VB6からEXCEL2000に罫線と塗りつぶしを出力したいのですが

    VB6から入力されたデータを計算や変換して EXCELに出力するプログラムを作成していますが EXCELのセルにデータを出力することはできましたが、 セルの塗りつぶしとフォントの色の出力(変更)がわかりません。 サンプルなどを探してみましたが見当たらなかったので、どなたかわかる方がいましたらよろしくお願いします。

  • VB ループ中の値をゆっくり出力

    VB初心者です。 ループの中で変化する値を数秒おきにループの途中で 休みを入れて結果の画面上に数秒間隔で数値を更新して 出力したいと考えております。 そこで,タイマを使うやり方と,InputBoxを使う方法を 試してみましたが,いずれもすべての処理が終わった後で 一番最後のデータだけがループ上で所望の時間Xループ回数 分の時間後に表示されるか,InputBoxの場合はループ回数 だけメッセージボックスに入力してこちらも最後の結果だけ が最後に出力されるだけになってしまいます。 Timerの場合は  Do While Timer XXX>Timer DoEvents Loop としてスリープ状態にはならないようにしておりますが うまく途中の結果を出してくれる出力画面を出すことが できません。 何かうまい方法はないでしょうか? よろしくお願いいたします。

  • VB2005でのエクセルへのデータ出力

    タイトルどおりなのですが、DBからマスタのデータを単純にエクセルに出力するだけなのですが、どういったやり方が一番高速に処理できるのでしょうか? マスタのデータをデータテーブルに取得して、データテーブルをループさせながら、1レコードごとにエクセルに出力するようなやり方しか思いつかないのですが、もっと効率的で高速に処理できる方法があれば教えて下さい。 ちなみに、エクセルは新規ファイルではなく1行目にマスタのテーブルのカラム名を記述している既存ファイルのエクセルに出力していく形になります。 画面の動作としては、マスタメンテの画面にある「出力」ボタンをクリックすることで、ファイルダイアログを表示して保存先を決めたら、出力開始というイメージです。 できれば、サンプルコードなどあれば有難いです。 宜しく、お願いします。 開発環境: OS:WinXP SP2 DB:Oracle 10g(?)、すみません。バージョンまであってるかは不明です。 言語:VB2005Pro Excel:Excel2000

  • VB.net2003のエクセルからデータを取得したいのですが・・・

    お世話になります。 VB.NET2003でExcel XPのセルの数値を取得しTextBoxなどで表示させたいのですが、うまいこといきません。 下に考えてみたコードを書いてみます。 とりあえずExcelのA1セルの値を取得してみたいのですが、後ほどループで他のセルの値も取得したいと思っています。 これを回すと、num(1, 1) = sheet.cells(1, 1)(下から3行目)で”追加情報 : 型 'Range' から型 'String' へのキャストが有効ではありません。”とされます。 どなたかご教授お願いしますm(__)m Private Sub exel_open() '------配列設定----- Dim app As Object 'エクセルアプリケーションの定義 Dim book As Object 'ブックの定義 Dim sheet As Object 'シートの定義 Dim col, row As Integer 'colは行、rowは列 Dim num(1, 1) As String '各セルの値を取得 '------エクセルファイルを開く&表示------- app = CreateObject("Excel.Application") app.application.visible = True book = app.Workbooks.Open("D:\test.xls") 'エクセルファイルのopen sheet = book.Worksheets(1) '-----エクセルデータの読み込み------ num(1, 1) = sheet.cells(1, 1) TextBox1.Text = num(1, 1) End Sub

  • ExcelデータをVB.NETに取り込みたいのですが

    現在ExcelデータをVB.NETに取り込もうとしています。ただ単純に取り込む方法では出来ないと思われ、是非皆さんに知恵を貸して頂きたいと思います。 セルA1~G1、A2~G2、A3~G3のセル位置をそれぞれ座標(1,1)~(1.7)、(2.1)~(2,7)、(3,1~3,7)とみなし、そのセルの数値を(i、j)の変数を用いて配列的に取り込むにはどうすればよろしいでしょうか? 例えばA1の数値が5、B1の数値が7、A2の数値が3だった場合、VB内では(1,1)=5、(1,2)=7、(2,1)=3というようにExcelデータを取り込みたいのです。この場合はデータ数が少ないので手動でVBにデータを入力すればよいのですが、実際はデータ量が多く、なんとか配列を用いて処理したいと思っています。 よろしくお願いいたします。 説明が足りない場合は遠慮なくお申し付けください。

  • エクセルのVBプログラムについて

    インターネット上にあった 下記のVBプログラムをエクセルで使用しているのですが、 セルの変化を数値入力後、「エンター」を押さなければ認識しません。 『 ='Sheet2'!N13 』のように他のシートから数値を取り、その変化で、 メッセージボックスを起動させたいのですが、上手くいかないのです。 何方か、対処方法、宜しく御願いします。 : 次のサンプルは、値を変更したセルがセルA1~B5に含まれる場合にのみ、 メッセージボックスを表示します。 対象とするワークシートのシートモジュールに記述してください。 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A1:B5")) Is Nothing Then Exit Sub Else MsgBox "セルの値が変更されました" End If End Sub

  • データコントロールでEXCELにデータ入力

    TextBoxに入力した値をEXCELに出力しています。 数値は入力できるのですが、AAなどの文字は、「データ型の変換エラーが発生しました。」と表示され入力することができません。 ご教授お願いします。

  • VB6にてエクセルのセルに貼り付けで・・・

    お願いします。VB6にてエクセルの任意のセルへデータを貼り付けたいのですが、そのエクセルにauto_openが含まれていてフォームを開くようになっています。 Option Explicit Dim objExcelApp As Workbook ---------------------------- strExcelFile = "C:\A.xls" strExcelSheet = "Sheet1" objExcelApp.ActiveSheet.Cells(1, 1).Value = "A" ではフォームが開いて更新ができません。エクセルを開かずに値をセルへ代入できないものでしょうか? どうかお願いします。

  • VBからExcelのデータを参照するには?

    VBからExcelのデータを参照するには? ExcelのA列を、参照しようとしています。 このA列には数字も混じっています。 例えば A123 abc 456 qwer のように、4行あったとします。 VBのソースコードは、次の通り --------------------- Dim elSequence(10) As String i = 0 Do Until objSheet.Range("a2").Offset(i,0).Value = "" elSequence(i) = objSheet.Range("a2").Offset(i,0).Value i += 1 Loop --------------------- 問題は、Excelのセルに「数字だけの場合(上記の例で4行目)」で、VBはこれを、文字列として扱わずにDouble型と認識してしまいます。 例え、Excelのセルを、プロパティの文字列指定としても「456」はDouble型になってしまいます。 Excelから受け取ったデータを、文字列への変換はどのようにしたら良いですか。 参考になりそうなWeb等でも構いませんので、教えていただけませんか。

  • VBでの配列をEXCELに出力する方法

    仕事で、VBでDBから取得した値を配列に設定し、それをEXCELで帳票として出力したいのですが、やり方が分かりません。ご存知の方がいましたら、教えていただけますか。 VBからCopyFromRecordsetでRecordsetをEXCELのrangeで出力する方法は見つけたのですが、Recordsetそのままではなく、動的配列に並び替えてEXCELに出力したいと思っています。 EXCELのシートをテーブルと見立てて、SQL文でEXCELにInsertする方法もある聞いたのですが、実際にどのように命令を書けばいいのか分かりません。 ご存知の方、教えていただけますか。

専門家に質問してみよう