• ベストアンサー

別フォームのスプレッドの内容を取得したい

VB.net2003とSPREAD for .NET Formsを使用して開発を行っています。 1つのプロジェクトに2つのフォームがあり、FormAのSPREADの内容をFormBから取得したいのですが、うまくいきません。 FormBのLoadイベントでFormAのSPREADの内容を取得するのに下記のようなコーディングを行ってみましたがだめでした。 Dim frmFormA As FormA = New FormA txtText.Text = frmFormA.スプレッド名.ActiveSheet.Cells(frmFormA.スプレッド名.ActiveSheet.ActiveRowIndex,0).Value 別フォームのSPREADの内容を取得する方法を教えてください。

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

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

.Netなので、Newでインスタンスは必須ですね^^; http://dobon.net/vb/dotnet/form/accessanotherformdata.html ここら辺が参考になりませんか。

hara30s
質問者

お礼

お返事ありがとうございます。 教えていただいたHPの「所有されているフォームの取得 」を参考にやってみました。 FormAは開いたままなのでこの方法が一番簡単化と思い採用しました。 結果はうまくいきました。 別のフォームから内容を取得する方法はいろいろあるのですね。 他の方法はもうちょっとVB.NETに慣れてから挑戦しようと思います。

その他の回答 (2)

回答No.2

お世話になります。 少し確認させていただきたいのですが, ・Dim frmFormA As FormA = New FormA  をした時は,FormAはもう既にどこかで開いている状態ですか? もし,開いていないのであれば, ・Dim frmFormA As FormA = New FormA  とした時に,FormAのスプレッドシートに値が入るような処理がされていますか?  (=Sub Newの中でそのような記述をしていますか?)

hara30s
質問者

お礼

お返事ありがとうございます。 FormAは既に開かれている状態です。 フォーム間のデータ受渡しを行う方法はいろいろあるみたいですね。 とりあえず今回は、FormAからFormBを開く際にShowdialog(Me)とし、FormBでFormAを参照する際に下記のようにして見ました。 Dim frmFormA As FormA As Me.Owner 結果とりあえずうまくいきました。

  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.1

.Net環境がないので、憶測ですが。 >Dim frmFormA As FormA = New FormA この「New」いらないのではないでしょうか? これだと既存のFormAの参照ではなく新しいFormAを作ってしまうと思います。 VB6.0で言うところの、 Set frmFormA = New FormA と Set frmFormA = FromA の違いかと。 ご参考とまで。

関連するQ&A