- ベストアンサー
Excelシートの読み込み
Excelシートからデータを取得してくるとき、 Excel上では値が入っているにもかかわらず Vb側ではNullになってしまいます。 Dim ExcelRec As DAO.Recordset … … 変数 = ExcelRec(0).Value ← この時点でNull … ご教授ください。 環境 Vb6.0、Excel2000
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#3です。 http://support.microsoft.com/kb/194124 これではないかしらん?
その他の回答 (3)
- leftovers
- ベストアンサー率100% (2/2)
横からすいません。 自分もまったく同じ状況です。 http://www.bcap.co.jp/hanafusa/VBHLP/dao_002.htm というサイト様のTipsをコピペして実験してみた所、半角数字が入ってくるとOKかな?とは思いました。 Fields(0)でコケるんですよねぇ バグなんでしょうか? ・・・すいません。回答になってなくて
- izumi_charis
- ベストアンサー率42% (6/14)
#1です。補足で頂いたプログラムでテストしましたが、問題なく動きました(^^; データがない場合は、Nullと出ましたが、データのある部分は正常に動いたので、プログラムはよさそうですが・・・。 MsgBox ExcelTableDef.Name などで、どのシートのデータをとろうとしているのか確認して、本当にデータがあるのかどうか見るくらいしか思いつきません。 お役に立てず、すみません。
- izumi_charis
- ベストアンサー率42% (6/14)
>… >変数 = ExcelRec(0).Value ← この時点でNull の上の…の部分がないと、明確なアドバイスはできないのですが、 select文でデータを取っていますよね? 変数 = ExcelRec.Fields(0) にしてみてはどうでしょうか?
補足
説明不足ですみません。 補足しますと、 Dim ExcelDB As DAO.Database Dim ExcelTableDef As DAO.TableDef Dim ExcelRec As DAO.Recordset Set ExcelDB = OpenDatabase(Excelのファイル名,False, False, "Excel 8.0;HDR=NO;") For Each ExcelTableDef In ExcelDB.TableDefs Set ExcelRec = ExcelDB.OpenRecordset(ExcelTableDef.name, dbOpenTable) Do Until ExcelRec.EOF 変数 = ExcelRec.Fields(0) 変数 = ExcelRec.Fields(1) … ExcelRec.MoveNext Loop ExcelRec.Close Set ExcelRec = Nothing Next ExcelTableDef … … ご指摘の通り、Fields(0)でやってみましたがだめでした。 Select文は使っておりません。 よろしくお願いします。
お礼
わざわざありがとうございました。 今、読み込んでいるExcelは正常に読み込みできるデータとできないデータがあるんですよ。 Excelのほうで文字列にしたりだとかいろいろ試してみたんですがだめでした。 ほかの対策を考えます。 お忙しいところ、ありがとうございました。