VisualBasic2008でExcel操作の方法

このQ&Aのポイント
  • 「VisualBasic2008でExcelの操作の仕方」についてご質問があります。Button1のクリックイベントでExcelに数値を飛ばす方法がわかりません。また、Excelからデータを取得する方法についても知りたいです。
  • 質問者は「VisualBasic2008でExcelの操作の仕方」について調査中で、Button1のクリックイベントでExcelに数値を飛ばす方法と、Excelからデータを取得する方法について試していますが、参照設定がうまくいかないようです。
  • VisualBasicを始めたばかりの質問者は、「VisualBasic2008でExcelの操作の方法」についてお手伝いが欲しいです。Button1のクリックイベントでExcelに数値を飛ばす方法やExcelからデータを取得する方法について、わかりやすく教えてほしいとのことです。
回答を見る
  • ベストアンサー

VisualBasic2008からExcelの操作の仕方

VisualBasic2008からExcelの操作の仕方 Button1のクリックイベントで、Excelに数値を飛ばしたいのですが、仕方がわかりません。 加えて、Excelからデータも持って来れたらいいなと考えています。 いろいろサンプルコードで試しているのですが、まず参照設定がよくわかりません。 プロジェクト→参照の設定→COM→Microsoft Excel 14.0 ObjectLibrary で追加しているのですが、 サンプルコードをVisualBasic2008にペーストしてやると、エラーのような下線が引かれてしまいます。 VisualBasicを使い始めたばかりなので、どうかわかりやすく、お願いします。

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

  • ベストアンサー
回答No.1

参照設定とは、プログラムから見に行くライブラリの場所をあらかじめ設定しておくというものです。 Microsoft Excel 14.0 ObjectLibraryですからOffice2010のライブラリを参照すると設定しています。 エラー箇所の内容が出ていないのですし、サンプルコードがなんなのかもわからないので、なんとも返答しにくいです。 とりあえず、Excelアプリケーションとワークブック・ワークシートをオブジェクトにして、ExcelVBAのように操作!っていう感じです。 参考URLをどうぞ!!

参考URL:
http://www.asahi-net.or.jp/~ef2o-inue/vbnet/sub13_03_010.html

その他の回答 (2)

回答No.3

こんにちわ。 ANo2の方の回答が基本的なソースに近いですが補足させてもらいます。 セルに書きこんだ後、各オブジェクトを解放するようにしないと Excelのプロセスが消えないという現象が起きる可能性があります。 (VB2005では現象有、VB2008は試してません) 「VB Excel プロセス」で検索かければそのような記述がかなりヒットします。 「VB2008 Excel」で検索しても基本的なソースはいっぱいありますので 参考にされるのがいいと思いますよ。

回答No.2

こんばんは。 ネットを使って調べましょう。 私はあまりVBは使いませんが、以下のコードで Excelを起動し、新規ワークブックを作り、Sheet1のA1セルに 値「1」を書き込みます。 Imports Microsoft.Office.Interop.Excel Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim AppExcel As New Microsoft.Office.Interop.Excel.Application AppExcel.Visible = True Dim WB As Workbook = AppExcel.Workbooks.Add() Dim WS As Worksheet = WB.Worksheets(1) Dim MyR As Microsoft.Office.Interop.Excel.Range MyR = WS.Range("A1") MyR.Value = 1 End Sub End Class

関連するQ&A

  • Excel2003のObjectLibrary

    現在、社内でVB6からExcelファイルへ出力するプログラムを作成しております。 社内のExcelは2000で、お客様のExcelは2003なのですが、2003のObjectLibraryは10ですか?9ですか? 社内は2000なのでExcel 9.0 ObjectLibraryを参照設定することでうまく行きそうなのですが、お客様のところでもうまく行くのか不安です。 Excel2003のObjectLibraryは何なのか? また、10の場合は参照設定をExcel 10.0 ObjectLibraryにかえるだけでうまくいくのでしょうか? プログラムでは シートのコピー、シート名変更、セルへの書込み ぐらいの処理しかしません。 ご存知の方、いらっしゃいましたら、ご回答お願い致します。

  • MSDNでVisualBasicコードを印刷には?

    WindowsXP, InternetExplore8でMicrosoftのMSDNのあるページの画面を印刷したいのですが、画面上には、VisualBasic、C#、VisualC++などいろいろなプログラムの言語のサンプルコードが表示されているのですが、[ファイル]メニューの[印刷プレビュー]で確認するとC#のサンプルコードだけしか表示されません。実際に[ファイル]メニューの[印刷]で印刷してみてもC#のサンプルコードだけしか印刷されません。 ここで、「C#のサンプルコードだけ」とは、全体の説明文と、C#のサンプルコードだけあり、他の言語のサンプルコードがないという意味です。 例えば、 http://msdn.microsoft.com/ja-jp/library/system.runtime.interopservices.varenum.aspx のMSDNのページには、「VarEnum 列挙体」の説明が記載されていますが、VisualBasicのサンプルコード(説明文を含む)を印刷することはできるのでしょうか。 このページ上にある「言語フィルタ」や「印刷用ページ」なども試してみましたができませんでした。 よろしくお願いします。

  • ExcelのVBAでRangeとCellsをWSHから使いたいのですが・・

    エクセルに書き込むマクロのコードを書いていたのですが、 Exl.range(Cells(1, 1), Cells(3, 4)).Font.Bold = True のような部分が、VisualBasic や OFFICEのVBA上で 参照設定でExcelを指定していると、動くのですが、 同じコードが、WSHでは参照設定ができないせいなのか、 動きません。WSHの場合、どのようにしたらよいのでしょうか。 よろしくお願いします。

  • VS2005、C#、Excel2002でExcelの操作

    現在、開発環境が、 WinXP VS2005 Excel2002 なのですが、VS2005の参照の追加で、 Microsoft Excel 10.0 Object Library を追加すると、参照設定の「Excel」にビックリマークが出て、 「タイプライブラリ"Excel"のラッパーアセンブリが見つかりません。」と、 「参照コンポーネント'Excel'が見つかりませんでした。」 の2つの警告が出て、Excel操作の記述が書けません。 ちなみに、参照設定「Excel」のプロパティを見ると、パスが空になっています。 この状況で、C#でExcelを操作できるようにするにはどうしたらよいかご教授いただければ幸いですm(_ _)m

  • ExcelのVBAで下線のついている文字列の前後の位置を取得したい。

    ExcelのVBAで下線のついている文字列の前後の位置を取得したい。 例えば、下記のような文章で「sample」という文字列に下線がついている場合 「sample」の文字列の前後の位置(4,10)を取得したい これはsampleの文章です。 使用OS:Windows XP 使用ソフト:Microsoft Excel 2003 ご存知の方がおられましたらご回答をよろしくお願いします。

  • VisualBasic.NET以降の生コード見たい

    VisualBasic.NET以降の環境で書かれて実際に稼働した(又は稼働中)の生コードを参照できるサイトはないでしょうか・・・? vb2010にて中小企業での導入を目的に帳票プログラムを開発するため独学で参考書を読みベータ版を試作し続けているのですが、動きはしますが本の理屈通りでコード無駄が多いように感じます。。単に文法説明的なサンプルコードではなく生のコードが見てみたいのですが、そのようなサイトはありますでしょうか?アドバイス願います(><)

  • visualbasic2013 Excel出力

    以下の開発環境でOleDbを利用してExcelファイルの出力を 行いたいと考えております。 ・visualbasic2013(Pro) ・クライアントにはExcelインストール済 以下のコードを実装しています。 Dim cn As System.Data.OleDb.OleDbConnection '/ ADO.NET接続用 cn = New System.Data.OleDb.OleDbConnection() cn.ConnectionString = "provider=Microsoft.jet.OLEDB.4.0;Data source=" & _ "E:\test.xls" & ";Extended properties=""Excel 8.0;HDR=YES;IMEX=1""" '/ Excelファイル新規作成 cn.Open() 上記を実行すると cn.Open()で例外が発生してしまいます。 ※ファイルが存在しない 新規にファイル作成したいのでファイルが存在しない状態で 実行しているのですが、そもそもの考え方が誤っているのでは ないかと危惧しております。 実現したい事はOleDbを利用して新規Excelファイルを生成する事です。 大変恐れ入りますが分る方がいらっしゃいましたら ご教授頂けないでしょうか。 以上です。

  • 参照設定 VBAとvb.net

    VBAの場合、他のアプリケーションを参照する場合は、 参照設定でMicrosoft Excel xxx Object Library にチェックを付ければ良いだけだけど、 vb.netの場合は、 参照設定で、Microsoft Excel xxx ObjectLibrary にチェックを付けた上で、更に Imports Microsoft.Office.Interop の宣言をしないといけないのですか? (例はエクセルです) Imports Microsoft.Office.Interop をし忘れると、 [型 'Excel.Workbook' が定義されていません。] と言うエラーが発生します。

  • VisualBasic 2005 にてプログラミングの学習をしていて、

    VisualBasic 2005 にてプログラミングの学習をしていて、疑問に思った点がありましたので質問させて頂きました。 Form1とForm2を作成しています。 その時にForm2を非表示で起動したいと考えた(Form2_Loadイベントを実行したい)のですが、 Form2を非表示で起動させる事が出来ません。 <Form1側 Button1_Click> 'モーダル表示 Dim frm2 As New Form2 frm2.ShowDialog() <Form2_Load> '非表示 Me.Visible = False 上記コードだと、Form2が表示されてしまいます。 これを非表示でLoadイベントを実行させる方法をご存知の方がいらっしゃれば教えて頂きたい と思います。 初歩的な質問で申し訳ないのですが、よろしくお願いいたします。

  • Excelのシートを本文として送信時のトラブル

    PCにあまり詳しくないので、上手く説明できていないかもしれませんがよろしくお願いします。 Excelのシートを左上のボタンで本文としてOutlook Expressで数人に同報送信したところ、1人の方だけ以下のような文字が表示されてしまいました。 <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns= や <head> <meta http-equiv=Content-Type content="text/html; charset=iso-2022-jp"> <meta name=ProgId content=Excel.Sheet> <meta name=Generator content="Microsoft Excel 11"> など、このような文字がつづいているみたいです。 受信者側のPCの設定に何か問題があるのでしょうか? よろしくお願いします。

専門家に質問してみよう