tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVB2005によるEXCELファイルをデータグリッドへ代入
記事No3736
投稿日: 2006/05/25(Thu) 11:41
投稿者森末末
[OSのVer]:Windows  [VBのVer]:VB2005   [EXCEL]:2003

森末末と申します。
VB2005をやり始めて、まだ1ヶ月ほどなのですが。
VBのデータグリッドに
EXCEL2003のシート1の値が代入されている全レコードを
代入し、表示させるためにはどうすればよろしいんでしょうか?
リストボックスには表示できたのですが、データグリッドだと良くわからなくなります。
どうかよろしくお願い致します。

  

[ツリー表示へ]
タイトルRe: VB2005によるEXCELファイルをデータグリッドへ代入
記事No3742
投稿日: 2006/05/26(Fri) 10:39
投稿者るしぇ
[Visual Basic .NET または Visual Basic 2005 を使って、オブジェクト
または構造体の配列に DataGrid コントロールを連結する方法]
hhttp://support.microsoft.com/default.aspx?scid=kb;ja;315784

# ローカル変数で定義した DataTable あたりにセルから取得した
# 値を入れていった方が分かり易い気もしますが。。。

Excel に対応したような読込み方法があるかどうかは知りません。

>リストボックスには表示できたのですが
はどういう処理を使ったの?質問者のレベルが分からないから、
自分が使った手法、分からない内容はサンプルコードを示す
なりして具体的に説明してください。

[ツリー表示へ]
タイトルRe^2: VB2005によるEXCELファイルをデータグリッドへ代入
記事No3743
投稿日: 2006/05/26(Fri) 15:46
投稿者森末末
Dim fileName2 As String = "D:\file.csv" 'CSVファイルのフルパス
        Dim sheetName2 As String = "Sheet1" 'Excelファイルのシート名


        FileOpen(1, fileName2, OpenMode.Binary) 'バイナリーモードで開く
        Dim ConText As String
        ListBox.Items.Clear()

        While (Not EOF(1))
            ConText = LineInput(1)
            ListBox.Items.Add(ConText)
        End While
        FileClose(1)

のようにコーディングした場合、ファイルを読み込んで一行ずつ出力する
形しかできておりません。そのため、各列ごとに分けたいのですが、
うまくいきません。

[ツリー表示へ]
タイトルRe^3: VB2005によるEXCELファイルをデータグリッドへ代入
記事No3744
投稿日: 2006/05/26(Fri) 17:08
投稿者るしぇ
えーと(^^;
…とりあえず、どこにもエクセルは使われていないようですね。。。
#  ついでに、コードを掲載する場合は[図表モード]で書込み
# ましょう。返信フォームのメッセージ欄の上のラジオボタンで
# 選択できます。

CSVファイルはエクセル特有のファイル形式ではありません。
hhttp://e-words.jp/w/CSV.html
ただのテキストファイルです。(メモ帳でも開くことができます)
…エクセルをインストールするとアイコンが変わるんだろうけど。

で、本題ですが、DataGrid クラスを使うので良いですか?
hhttp://msdn2.microsoft.com/ja-jp/library/system.windows.forms.datagrid.aspx
>スクロールできるグリッドに ADO.NET データを表示します。
>DataGridView コントロールは DataGrid コントロールの後継であり、
>新しい機能を追加しますが、必要に応じて下位互換性および将来の
>使用のために DataGrid コントロールを保持することもできます。
2005の場合、メインは DataGridView のようですが。。。

DataTable クラス
hhttp://msdn2.microsoft.com/ja-jp/library/system.data.datatable.aspx
を作って文字列データを入れて
DataGrid.DataSource プロパティ
hhttp://msdn2.microsoft.com/ja-jp/library/system.windows.forms.datagrid.datasource.aspx
に設定してみてください。

文字列のカンマ区切りでの分割は
String.Split メソッド
hhttp://msdn2.microsoft.com/ja-jp/library/b873y76a.aspx
でできます。

サンプルコードも各リンクに載っていると思います。
なお、紹介したリンクはヘルプ(MSDN)と同じ内容のはずですので、
ヘルプで調べたほうが早いかもしれません。

ついでに言えば、ファイルの入出力も
System.IO
hhttp://msdn2.microsoft.com/ja-jp/library/29kt2zfk.aspx
の下に用意されている関数を使ったほうが良いとされています。
サンプルコードは当サイトの←メニューから、
[VB.NETTips一覧 他]-[ファイル入出力(8)]を選んでください。

[ツリー表示へ]