comboboxをまとめて指定する方法
- 題名: comboboxをまとめて指定する方法
- 著者: 歩野
- 日時: 2012/09/21 16:17:19
- ID: 30961
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: comboboxをまとめて指定する方法
- 著者: shu
- 日時: 2012/09/21 16:38:53
- ID: 30962
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: comboboxをまとめて指定する方法
- 著者: 歩野
- 日時: 2012/09/23 16:29:40
- ID: 30963
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: comboboxをまとめて指定する方法
- 著者: shu
- 日時: 2012/09/24 9:59:13
- ID: 30964
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: comboboxをまとめて指定する方法
- 著者: 歩野
- 日時: 2012/10/03 17:02:02
- ID: 31007
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: comboboxをまとめて指定する方法
- 著者: 歩野
- 日時: 2012/10/10 15:54:07
- ID: 31017
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
先日こちらでexcelの解放方法を教えて頂き、数歩前進したのですが…
またつんのめってしまいました。
comboboxについて調べてみたのですが、どうにも該当するものが見つからず困っています。
以下コードです。
Dim sCellVal As String
Dim y As Integer
Dim x As Integer
Dim rng As Excel.Range ' Range オブジェクト--解放対象【rng】
Dim chk1 As Excel.Range ' Range オブジェクト--解放対象【chk1】
Dim chk2 As Excel.Range ' Range オブジェクト--解放対象【chk2】
Dim xlsCells As Excel.Range = oSheet.Cells ' Range オブジェクト--解放対象【xlsCells】
Try
x = 0 'データは2行目から1行開けて記入。初期値は0とする
Do
x += 2 'データは2行毎に記入なので加算値は2とする
y = 4 'データ格納は5列目から、4列目は項目記入。項目チェックの為初期値は4列目
chk1 = DirectCast(xlsCells(y, x), Excel.Range) '項目情報取得
chk2 = DirectCast(xlsCells(y, x + 1), Excel.Range) '隣の行の項目情報取得
If chk1.Text = "" AndAlso chk2.Text = "" Then '項目情報の空白チェック
MRComObject(chk1) '【chk1】exitで漏れると困るのでここで解放
MRComObject(chk2) '【chk2】exitで漏れると困るのでここで解放
Exit Do '空白ならループを抜ける
End If
Do
y += 1 '実データ取得なので5列目へ加算し、以下ループ
rng = DirectCast(xlsCells(y, x), Excel.Range) 'データ取得
If rng.Text = "" Then 'データの空白チェック
MRComObject(rng) '【rng】exitで漏れると困るのでここで解放
Exit Do '空白ならループを抜ける
End If
sCellVal = rng.Text.ToString() 'データをsCellValに一度受ける
ComboBox1.Items.Add(sCellVal) ' セルの内容をcomboboxへ格納
MRComObject(rng) '【rng】解放。
Loop
MRComObject(chk1) '【chk1】解放
MRComObject(chk2) '【chk2】解放
Loop
MRComObject(xlsCells) '【xlsCells】解放
コメントが多いのはご容赦頂くとして…
やりたい事は(B,5)〜(B,最終項)取得してcomboboxへ。
続けて一つ飛ばして(D,5)〜(D,最終項)。
以降1つ飛ばしを続けて2行空白だと項目無しとしてループを抜ける。
という事です。
外のDO〜LOOPが横へのシフトで、中に入れてるDO〜LOOPがデータの取得。
このときに
ComboBox1.Items.Add(sCellVal)
の”1”をフォームで作成している数(70個近くになる予定なので、変数xがそのままcomboboxの名前になるのが理想的かな)まで増やしたいのです。
combobox分このDO〜LOOPをつらつらと書くのもミスになりそうですし…
宜しくお願いします。