クラス間での変数(配列)の受け渡し方法
- 題名: クラス間での変数(配列)の受け渡し方法
- 著者: 歩野
- 日時: 2012/10/11 10:07:59
- ID: 31018
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: クラス間での変数(配列)の受け渡し方法
- 著者: バナナマン
- 日時: 2012/10/11 15:13:51
- ID: 31019
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: クラス間での変数(配列)の受け渡し方法
- 著者: 歩野
- 日時: 2012/10/11 16:49:57
- ID: 31021
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: クラス間での変数(配列)の受け渡し方法
- 著者: 歩野
- 日時: 2012/10/18 15:59:30
- ID: 31050
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
先日、excelの解放とcombobox処理を教えて頂きかなり思い描いてた動作に近づいてきました。
そこで、作成したexcel呼び出し→配列取得→combobox反映の流れを4つのフォームで同様処理させる事となるのだから、同じ事を各フォームに書いても修正の時に大変なのでクラスを使えば修正も簡単になるんじゃないか?と、試行錯誤しているのですがデータの受け渡しで躓いてしまったのでご教授願います。
-----クラス側-----
Public Class form_load
**
Public Shared Sub base_exl()'--excel読み込み・配列取得処理
**'--エクセル開く処理なので略します。
Dim com_data(,) As Object = DirectCast(rng_com.Value, Object(,)) '---配列に範囲を取得しています。
**'---エクセル解放処理なので略します。
end sub
-----フォーム側-----
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
base_exl()
ListBox9.Items.Add(com_data(1, 2))'---仮に1つだけ抜き出そうとしてます。最終的には配列をcomboboxへ流し込みます。
end sub
Public Shared Sub base_exl()の外にPublic Shared com_data(,) As Objectと指定すると、配列自体は読みに行くのですがSub base_exl()で取得している物とは別物なのか”オブジェクト参照がオブジェクト インスタンスに設定されていません。”と怒られてしまいます。
それでは、Sub base_exl()の中のcom_data(,)をPublic Sharedにすれば?
と、書いてみたものの書式がダメと怒られます。
Public Shared Sub base_exl()の外にPublic Shared com_data(,) As Objectと書くのが間違いなのか?と、Public Shared com_data(,) As Object= {{1, 2, 3}, {4, 5, 6}}と書くと、この配列は取得できる。
Public Shared Sub base_exl()内での書き方が悪いのかな?と素人考えであたりは付けてみたものの、そこから先が分かりません。
色々と調べてはみたのですが、どうにも行き詰ってしまいました。
・クラス内のPublic Shared Subの中で取得した変数(配列)をフォームへ
・フォーム内のPrivate Sub内で取得した変数(配列)を別クラスへ
これが分かれば前進できると思うのですが…
宜しくお願いします。