• ベストアンサー

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

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

  • VB2005 複数のフォームを同時に開く方法

    独学でVBを勉強している者です。 どうしてもわからないことがあるので、教えて下さい。 作ろうとしているのは、あるボタンを押すと、 別々のフォームが同時に開く処理なんですけど、上手くいかないんです。 dim A as new FormA dim B as new FormB A.show() B.show() のようにしても、 FormA.show() FormB.show() としても、 FormBしか画面に表示されないんです。 FormAのほうはタスクバーにだけ表示されます。 いろいろ調べたのですが原因がさっぱりわからないので、 もしお分かりの方がいたらヒントだけでも教えて下さい。 宜しくお願い致します。

  • 【VB6.0】 あるフォームから他のフォームへ値を受け渡したい

    タイトルの通り、あるフォームから他のフォームに値の受け渡しを行いたいのですが、どのようにしたらよいのでしょうか?? 以下のようなコードできんのかなぁ~~って、やったみだけど、 むりでした。。サンプルコード内でいうParamsのような値を 受け渡しさせたいのですが・・・。ご存知の方、申し訳ないですが 教えて頂けると非常にありがたいです。それと、、私はVB初心者です。 ---FormA--- Public Params as new Params Private sub Command1_Click() Call Me.Hide FormB.Show vbModeless, Me End sub ---FormB--- Private Sub Form_Load() 'Owner.Paramsのような形で参照できるかと思ったができませんでした。 End sub

  • DataGridViewの再描画。

    度々スイマセン。 VB2005、SQLServer2005環境です。 FormA、FormBの2つのフォームがあり、FormAはデータを表示、 FormBはそれに対してデータを追加するというプログラムを 作っています。 FormBでデータを登録し、FormBを閉じたタイミングで、 FormAのDataGridViewを再描画して、最新のデータの状態に したいのですが、うまくいきません。 ---FormAで記述しているコード--- Public Sub Form_Closed(ByVal sender As Object, ByVal e _ As System.Windows.Forms.FormClosedEventArgs) '登録終了時に、グリッドを再表示 '再表示 Me.TestTableAdapter.Fill(Me.DataSet1.Test) End Sub ---FormBで記述しているCD--- Private Sub FormB_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me.Load AddHandler Me.FormClosed, AddressOf FormA.Form_Closed End Sub 上記のように、FormBが閉じた時に、イベントで、 Me.TestTableAdapter.Fill(これの中身は、該当テーブルをアスタで すべて取得してます)を呼んでいます。 FormAには削除処理もあって、その時は、Deleteが流れた後に Me.TestTableAdapter.Fillを呼んだらデータが最新の状態になった ので、これで出来るかと思ったのですが…。 Fillの後にDatagridView.Refreshも追加してみましたが、 ダメでした。 どうすれば再描画できるでしょうか? ご教授ください。

  • エクセル フォーム上の全てのコントロールを取得した

    エクセル フォーム上の全てのコントロールを取得したい http://okwave.jp/qa/q4879853.html のNo.1さんの回答を参考に、 Sub try() Dim i As Integer Dim StrFormName As String StrFormName = "フォーム1" For i = 0 To Forms(StrFormName).Controls.Count - 1 Debug.Print Forms(StrFormName).Controls.Item(i).Name Next End Sub を作ったのですが、 「Forms」の部分が、 「Sub、Function、または Property が定義されていません。(Error 35)」 というコンパイルエラーになってしまいます。 上記のコードをアクセスVBAにつけると、全てのコントロール名が取得できます。 同じようにエクセルで使うにはどこを修正すればいいでしょうか? フォーム名は、変数に入れて使いたいです。

  • 【VC++2005(CLR)】フォームを閉じたことを検知するには?

    いつもお世話になっております。 現在フォームAからフォームBをモードレスで呼び出しております。 フォームBが閉じたことをフォームAに知らせたいのですが、 どのようにすればよいか教えて頂けませんでしょうか。 現在下記のタイミングでコーディングすればよいと思うのですが、 いかがでしょうか。 private: System::Void FormB_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) { //ここにコード記述 } お手数ですが、よろしくお願いします。

  • フォームから他のフォームの内容を更新する方法(ACCESS VBA)

    フォームAからフォームBを開き、フォームBでDBの更新を行います。フォームBを閉じたら、更新した内容をフォームA(Spread)に反映させようとしています。 フォームBでデータを再取得し、その内容をフォームAのSpreadに内容を書き込ませようとしましたが書き込めません。フォームBから書き込むことはできないのでしょうか? また、フォームBを閉じたときに、フォームAにあるコマンドボタンを押すことはできないでしょうか? 押すことができれば更新することができるのですが・・・。 どなたか良い方法をご存知でしたら教えてください。

  • Spreadのデータを別画面に引き渡す

    WebFormのSpreadの情報が少なく 自己解決が出来ないためお分かりになる方アドバイス お願い致します。 ASP.NET(VB)Webフォームでスプレッドを 使用しています。 選択されたスプレッドのデータを取得し、別の画面に 引渡したいのですが、パラメータを渡すメソッドなどは あるのでしょうか? Dim strData As String strData = 選択行のデータを取得 aaaのパラメータを別画面に引渡したいと考えています。 アドバイスの程よろしくお願い致します。

  • C# showdialogの戻り値について

    お世話になります。 C#2005で開発をしております。 質問内容を以下に記述致します。 FormA及びFormBがあり以下の処理を実行します。 (1)FormAからFormBをShowdialogで呼び出す (2)FormBにて任意の処理を実行する (3)FormAがFormBを閉じ、戻り値を受け取る ここで(3)の時に戻り値をDialogResult以外の戻り値で取得したいのですが、 方法はございますでしょうか。 可能であればint型数値で戻り値を設定したいと考えております。 お手数ですがご教示いただければ幸いに存じます。 以上宜しくお願い申し上げます。

  • {アクセス}全てのフォームの名前を取得したい

    ひとつのMDBファイルに入っている全てのフォームの名前を取得したいのですが Sub 全てのフォームの名前を取得() Dim i As Integer For i = 1 To Forms.Count Debug.Print Forms.Name Next End Sub このコードだと オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438) となってしまいます。 どうすればいいでしょうか よろしくお願い致します。

  • スプレッドについて

    VBも素人なんですが、スプレッドのとり方を教えてください。 以下のスプレッドが既存で存在していてチェックボックスが各行ごとにあるのですが、チェックしたときに呼ばれる関数を以下に書きました。 例えば002という値を取得したいときどうコーディングしたらよいでしょうか?  _____________  | 001 | AAAA |  a   |   |-----|------|----------|     | 002 | BBBB |  b   |  |-----|------|----------|  | 003 | CCCC |  c   |  |-----|------|----------| ※関数の中身は適当です。どうやったらとれるか試行錯誤しています。。。 Private Sub sprService_ButtonClicked(ByVal Col As Long, ByVal Row As Long, ByVal ButtonDown As Integer) Dim intbutton As Integer Col = Row intbutton = ButtonDown sprService.Col = sprService.Row sprService.Col = sprService.Row2 End Sub

専門家に質問してみよう