VB.NETからExcelのテキストボックスに値を設定するには?

解決


sino  2005-11-18 06:19:07  No: 127881

VB.NETから既存のExcelファイルを起動し、設定してあるテキストボックスへ値を設定したいのですが、方法が分かりません。
いろいろなところでも調べてみたのですが、それらしい方法を見つけることができませんでした。

ご存知の方、教えてください。
よろしくお願いいたします。


いな  2005-11-18 18:06:01  No: 127882

以前、MSNのサイトにリンクがあったのを覚えていました。
下記サンプルの中に、値の設定方法も記述されております。
http://anetm.com/dev/tools/vbdotnet/112217.htm


sino  2005-11-18 18:42:45  No: 127883

いなさん、ありがとうございます!
参考にさせていただきます。


ガッ  2005-11-18 19:02:49  No: 127884

非常にあやふやに覚えている情報ですが、
.NETはCOMに関して解放処理が必要だったような気がします。

…と思ったらじゃんぬねっとさんのサイトにサンプルありました。


いな  2005-11-18 20:00:15  No: 127885

あ、ホントだ^^;


sino  2005-11-18 20:11:25  No: 127886

すみません。
教えていただいたサンプルをみたのですが、ちょっと違いました。
私の説明が至らなく申し訳ありません。

Excelシートに設定してあるテキストボックスや四角形に
文字を表示させたいのです。
また、ヘッダーとして印刷物に出力したいので、
複数ページに設定が必要となると思うのですが・・・。


特攻隊長まるるう  2005-11-18 20:27:19  No: 127887

VBAを中心としたサイトで調べればすぐに出てきそうな質問ですね。

とりあえず、Excel 上の操作は Excel の機能に[マクロの記録]という
ものが存在しますので、それを利用して調べて下さい。使用方法も
記録されたコマンドの説明もすべて Excel のヘルプになります。


sino  2005-11-18 20:50:23  No: 127888

>とりあえず、Excel 上の操作は Excel の機能に[マクロの記録]という
ものが存在しますので、それを利用して調べて下さい。使用方法も
記録されたコマンドの説明もすべて Excel のヘルプになります。

Excelのマクロで実行するのではなく、VB.NETで編集したいと考えています。
やはり、Excelのマクロを使った方法しかないでしょうか??


ぶぶ  2005-11-18 20:53:54  No: 127889

>Excelのマクロで実行するのではなく、VB.NETで編集したいと考えています。
>やはり、Excelのマクロを使った方法しかないでしょうか??

そのマクロで作成されたコードをヒントにしてみては?という意味だと思いますが。。。


特攻隊長まるるう  2005-11-18 20:57:25  No: 127890

>やはり、Excelのマクロを使った方法しかないでしょうか??
いやいや(^^;)[VB.NET]側でエクセルを操作したことがあるなら、
そのコマンドが[VBA]と同じだと分かりますよね?([VBA]も知って
ないと無理か(汗))

[VB.NET]で Excel の参照設定をしましたよね?あれは、[VBA]
のコマンドを[VB.NET]側で使う手続きだと思ってください。
[VB.NET]で実行した命令は、実際は[VBA]と同じ処理が行われます。

ですから、Excel でマクロを記録して参考にして下さい。


特攻隊長まるるう  2005-11-18 21:04:23  No: 127891

>[VB.NET]で実行した命令は、実際は[VBA]と同じ処理が行われます。
[VB.NET]から Excel のオブジェクトへ出した命令は、実際は[Excel VBA]と
同じ処理が呼び出されて実行されます。

…の方が誤解の無い表現ですかね?訂正します。


ガッ  2005-11-18 21:19:24  No: 127892

・ExcelはExcelを操作できるインタフェイス群[Excel]を公開している。
・ExcelVBAでは(自分の)Excelの[Excel]を使って操作している。
・VBでは(他の)Excelの[Excel]を使って操作している。
要はExcelを操作するためには、(何らかの)Excelの[Excel]を使う必要があって、
今回は偶々(既存のExcelファイルから作られた)Excelの[Excel]を操作することになっただけ。
かな…?

※余計分かりづらい…


sino  2005-11-18 23:22:29  No: 127893

皆さま、ありがとうございます。

皆さまから頂きましたアドバイスを参考にさせて頂きました。
現在、処理を作っている最中ではありますが、途中経過を・・・。
VB.NETからテキストボックスの編集は行えていません。
やはり、VBAの機能で使えないコマンド(SELECTION等)があるためです。
その代わりになるものを現在探しています。


特攻隊長まるるう  2005-11-19 00:04:34  No: 127894

その辺を含めてエクセル操作は基本的な部分で覚えることが結構あります。
毎度お世話になってる花ちゃんさんのサイトを紹介しておきます。
http://www.bcap.co.jp/hanafusa/
エクセル関係の注意事項がよくまとめられています。
http://www.bcap.co.jp/hanafusa/dotnet/Excelflm.htm

Selection や Active〜 といったオブジェクトは使えないわけでは
ないですが、使わない方向でプログラムします。過去ログ検索
『Selection』は思いつきませんでしたか?掲示板を活用して下さい。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200504/05040068.txt

Object 型など曖昧なデータ型も極力使わないようにします。


魔界の仮面弁士  2005-11-19 00:20:00  No: 127895

どのテキストボックスが使われているのでしょうか。

Excel の「図形描画」ツールバーにあるテキストボックスの事なら、
  T = ワークシート.TextBoxes(1)
  T.Text = "新しい値"
  System.Runtime.InteropServices.Marshal.ReleaseComObject(T)
という感じですね。
(Option Strict On の場合は、DirectCast も必要になります)

「コントロール ツールボックス」ツールバーにあるテキストボックスなら、
  O = ワークシート.OLEObjects(1)
  X = O.object
  X.Value = "新しい値"
  System.Runtime.InteropServices.Marshal.ReleaseComObject(X)
  System.Runtime.InteropServices.Marshal.ReleaseComObject(O)
という感じでいけるかと。


ささ  2005-11-19 01:13:01  No: 127896

どうもこちらで続けたい模様ですね
http://www2.moug.net/bbs/program/20051118000001.htm


sino  2005-11-19 05:57:26  No: 127897

解決しました。
アドバイスくださった皆様、ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加