• 締切済み

VB6からExcellのSheetNo.の設定方法

VB6で、Excellを使用するアプリケーションを作成中です。 下記の手順でExcellファイルをオープンしていますが、SheetNo.を指定する方法が判りません。VB6は全くの初心者でExcellファイルを開くやり方もネットからもってきたもので、意味も判らないまま使用しています。 よろしく御願いします。 Dim fnm As String Dim exl As Object gStrExcelDir = CurDir         'gStrExcelDir:String変数 fnm = gStrExcelDir + "\ファイル名" Set exl = CreateObject("Excel.Application") exl.Application.Workbooks.Open FileName:=fnm ここまででファイルのオープンは出来ていて、SheetNo.1のセルのデータ読み込みは出来ます。 この後、別なSheetNoを設定する方法が判りません。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >Excellファイルを開くやり方もネットからもってきたもの ここですか? http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t16.htm Excel側からみると、とても雑だと思います。結果論だから、どうでも良いかもしれませんが。 たとえば、これって、 exl.Cells(c, l) 既存のブックに、オートメーション・オブジェクトの配下に対して、exl.Cells(j, i) こういうコードは書きません。それと、gStrExcelDir これって、Global 変数の意味だと思いますが、CCur を代入するなら、その必要性があるか、見えてきません。 >どちらの場合も”実行時エラー:'424'オブジェクトが必要です”とエラーメッセージがでます。 これが、どこで発生しているかはわかりませんが、ローカル・ウィンドウから、ステップモードで、オブジェクトが取れているのか、チェックすれば分かると思います。 #1の方のアドバイスで直らないというと、全体的に良く分かりませんので、こちらからは何もいえないように思います。このぐらいの内容ですと、何をどうするか、と書いてもらって、回答者にコードを書いてもよいと思います。ただ、VB6は、旧アプリケーションですから、VBAを代用して書くことになるだろうと思います。私は、今はインストールしていません。 それと、Excelをお持ちでしたら、最初、参照設定させて、インテリセンスを使って書いてしまったほうが早いのでは? その後で、参照設定を外して、クラス名を、As Object にしてしまってもよいと思います。

sansaiji
質問者

補足

回答ありがとうございます。 正直、回答の意味が理解できないという初心者です。 たまたま別のルートからの回答があり、それでうまくいきました。 修正内容は下記の通りです。 strSheetNo = exl.Cells(c, l)            従来       ↓ strSheetNo = exl.Worksheets("Over_C").Cells(c, l)  修正後

  • OMEGAT
  • ベストアンサー率70% (455/642)
回答No.1

Dim fnm As String Dim exl As Object Dim xlsBook As Object Dim xlsSheet As Object gStrExcelDir = CurDir         'gStrExcelDir:String変数 fnm = gStrExcelDir + "\ファイル名" Set exl = CreateObject("Excel.Application") Set xlsBook = exl.Application.Workbooks.Open (fnm) 'シートへのアクセスは Set xlsSheet = xlsBook.Sheets(2) 'もしくは Set xlsSheet = xlsBook.Sheets("シート名") 'セルの値へのアクセスは MsgBox xlsSheet.Cells(1,1).Value 'などでアクセスできると思います。

sansaiji
質問者

補足

ありがとうございました。早速試してみました。 Set xlsSheet = xlsBook.Sheets(2) Set xlsSheet = xlsBook.Sheets("シート名") どちらの場合も”実行時エラー:'424'オブジェクトが必要です”とエラーメッセージがでます。 ちなみにセルの値は strSheetNo = exl.Cells(c, l)    'c、lはInteger で読み取ることが出来ています。 また、Sheet名はSheet1,2ではなく内容をあらわす文字にしています。 別の所に問題があるのかもしれません。

関連するQ&A

専門家に質問してみよう