tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルopenfiledialogで取得したexcelシートを読み込めない
記事No586
投稿日: 2003/12/10(Wed) 10:03
投稿者初心者です。
こんにちわ、はじめまして。初心者的な質問で申し訳ありません。質問内容ですが

openFileDialogを使って取得してきたexcelシートの
データを参照したいのですが、どうしても「Nothing」になって
しまいます。

どうすればよろしいでしょうか?
(以下が私の作成したプログラムです)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click

   On Error Resume Next

   Dim myStream As Object

   Dim openFileDialog1 As New OpenFileDialog()
   Dim FilePath As String
   Dim FilePath1 As String
   Dim xlApp As Excel.Application
   Dim xlBook As Excel.Workbook
   Dim xlSheet As Excel.Worksheet

   xlApp = CreateObject("Excel.Application")

  // openFileDialogでexcelシートを取得

   openFileDialog1.InitialDirectory = "c:\"
   openFileDialog1.Filter = "Excel files (*.xls)|*.xls|All files (*.*)|*.*"
   openFileDialog1.FilterIndex = 2
   openFileDialog1.RestoreDirectory = True

   If openFileDialog1.ShowDialog() = DialogResult.OK Then

           myStream = openFileDialog1.OpenFile()

           If Not (myStream Is Nothing) Then

               // ファイルパスを取得
               FilePath = myStream.Name()
               // シート情報開放
               myStream = Nothing

               // 開こうとするが変数
               // (xlApp,xlBook,xlSheet,FilePath1)
               // が「Nothing」になる

               xlBook = xlApp.Workbooks.Open(FilePath)
               xlSheet = xlBook.Worksheets(1)
               FilePath1 = xlSheet.Cells(1, 1).Value

           End If '
       End If

       xlApp.Quit()
       xlSheet = Nothing
       xlBook = Nothing
       xlApp = Nothing
   End Sub

以上、よろしくお願いします。

[ツリー表示へ]
タイトルRe: これでどうでしょう?
記事No587
投稿日: 2003/12/10(Wed) 13:57
投稿者Tom's
この内容は最近苦戦しました。(ネット上で見当たらなかったので)

※エクセルを扱うための前提条件として
メニューの「プロジェクト」→「参照の追加」→「COM」タブで「MSエクセル」のライブラリを
追加しないとできません。

[OSのVer]:Windows    [VBのVer]:VB.NET  
> こんにちわ、はじめまして。初心者的な質問で申し訳ありません。質問内容ですが
>
> openFileDialogを使って取得してきたexcelシートの
> データを参照したいのですが、どうしても「Nothing」になって
> しまいます。
>
> どうすればよろしいでしょうか?
> (以下が私の作成したプログラムです)
>
> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
> Handles Button1.Click
>
>    On Error Resume Next
>
>    Dim myStream As Object
>
>    Dim openFileDialog1 As New OpenFileDialog()
>    Dim FilePath As String
>    Dim FilePath1 As String
>    Dim xlApp As Excel.Application
>    Dim xlBook As Excel.Workbook
>    Dim xlSheet As Excel.Worksheet
>
>    xlApp = CreateObject("Excel.Application")
>
>   // openFileDialogでexcelシートを取得
>
>    openFileDialog1.InitialDirectory = "c:\"
>    openFileDialog1.Filter = "Excel files (*.xls)|*.xls|All files (*.*)|*.*"
>    openFileDialog1.FilterIndex = 2
>    openFileDialog1.RestoreDirectory = True
>
>    If openFileDialog1.ShowDialog() = DialogResult.OK Then
>
>            myStream = openFileDialog1.OpenFile()

※ダイアログからファイル名も取得できますよ

             FilePath = openFileDialog1.FileName

>
>            If Not (myStream Is Nothing) Then
>
>                // ファイルパスを取得
>                FilePath = myStream.Name()
>                // シート情報開放
>                myStream = Nothing
>
>                // 開こうとするが変数
>                // (xlApp,xlBook,xlSheet,FilePath1)
>                // が「Nothing」になる
>
>                xlBook = xlApp.Workbooks.Open(FilePath)
>                xlSheet = xlBook.Worksheets(1)

※ここはこのように記述したらできます。
                 xlSheet = xlBook.Worksheets.Item(1)

>                FilePath1 = xlSheet.Cells(1, 1).Value
>
>            End If '
>        End If
>
>        xlApp.Quit()
>        xlSheet = Nothing
>        xlBook = Nothing
>        xlApp = Nothing
>    End Sub
>
> 以上、よろしくお願いします。

[ツリー表示へ]
タイトル質問者はマナー厳守を
記事No593
投稿日: 2003/12/15(Mon) 09:29
投稿者管理人
最近、質問するだけで、返信やお礼を言わない方が見受けられます。
この程度の事は一般常識の範囲かと思います。こういった事が多くなると
回答も得られなくなります。
他のマナーを守っておられる方にも迷惑をかける事になります。
掲示板の上部やメニューの「はじめにお読み下さい」等の注意事項を
良く読んでからご使用願います。

# 今からでも遅くありませんので返信願います。

[ツリー表示へ]