- 締切済み
VB2005でExcelファイルを開く
こんにちは。 VB2005の勉強をさせて頂いています。 ボタンを押すとコモンダイヤログを表示し、 ダイヤログ内で選択したExcelファイルの内容をフォームのDataGridViewにもって行きたいと思っていますが 上手くできません。一応現在のソースを下記に置いておきます。 特に、下記のソースの 'DataGridView1に展開 For i As Integer = 0 To xlSheet.Rows.Count - 1 DataGridView1.Rows.Add() DataGridView1.Item(0, i) = xlSheet.Rows.Item(i, 0) Next のループ条件xlSheet.Rows.Count - 1がどうも6万くらいになっているようなのですが、 実際セルに入力したデータは5行程度のものです。 1セル1セル文字が入っているかどうかを調べていかないといけないのでしょうか? よろしければ、具体的なソースやアドバイスをお願いいたします。 -------------------------------------- Dim ofd As New OpenFileDialog() 'ofdの設定をする 'ダイアログを表示し、戻り値が [OK] の場合は、選択したファイルを表示する If ofd.ShowDialog() = DialogResult.OK Then '選択されたファイルを読み取り専用で開く Dim ReadFile As System.IO.Stream ReadFile = ofd.OpenFile() If Not (ReadFile Is Nothing) Then Dim xlApp As New Excel.Application Dim xlBooks As Excel.Workbooks = xlApp.Workbooks '既存ファイルを開く場合 Dim xlFilePath As String = ofd.FileName Dim xlBook As Excel.Workbook = xlBooks.Open(xlFilePath) Dim xlSheets As Excel.Sheets = xlBook.Worksheets Dim xlSheet As Excel.Worksheet = xlSheets.Item(1) 'DataGridView1に展開 For i As Integer = 0 To xlSheet.Rows.Count - 1 DataGridView1.Rows.Add() DataGridView1.Item(0, i) = xlSheet.Rows.Item(i, 0) Next 'xlSheet の解放 'xlSheets の解放 'xlBook を閉じる 'xlBook の解放 'xlBooks の解放 'Excelを閉じる 'xlApp を解放 End If End If ofd.Dispose()
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Masa2072
- ベストアンサー率51% (94/182)
No.2です。 以下のように訂正します。 誤) xlsheet.SpecialCells(xlCellTypeLastCell).Select 正) xlsheets.Range("A1").SpecialCells(xlCellTypeLastCell).Select
- Masa2072
- ベストアンサー率51% (94/182)
参照元シートのデータ入力範囲を絞るのであれば xlSheet.SpecialCells(xlCellTypeLastCell).Row xlSheet.SpecialCells(xlCellTypeLastCell).Column で編集済み最終セル(編集済みエリアの一番右下のセル)の行番号、列番号を取得できます。
- himajin100000
- ベストアンサー率54% (1660/3060)
未検証。 WorkSheet.Cellsプロパティで取得したRangeに対して Range.Endプロパティを使うとどうなる? http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet.cells.aspx http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.range.end.aspx