
エクセルvbaでadoを使って他ファイルの件数を取得することは可能でしょうか?
もともと件数を取得したいファイルは共有フォルダに入っていて、
開くのにすごく時間がかかるのでADOで試みたいのです。
しかしうまくいきません。
当方の環境は
Win7、エクセル2010です。
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub0 …
を参考にしたのですが、
Const cnsProvider = "Microsoft.Jet.OLEDB.4.0"
Const cnsExtProp = "Extended Properties"
Const cnsExcel = "Excel 8.0"
Const cnsDBName = "D:\Book1.xlsx" 'ローカルでテスト
Sub ADO_WS_TEST1()
Dim dbCon As ADODB.Connection
Dim dbRes As ADODB.Recordset
Dim GYO As Long, COL As Long
Dim strSQL As String
' Connection生成
Set dbCon = New ADODB.Connection
With dbCon
.Provider = cnsProvider
.Properties(cnsExtProp) = cnsExcel
.Open cnsDBName
End With
の
.Open cnsDBNameの部分で、
実行時エラー-2147467259
外部テーブルのフォーマットが正しくありません。
となります。
Excel 8.0が原因なのでしょうか?
オフィス2010でもExcel 8.0でいいのでしょうか?
ココがうまく通ったら、
"SELECT * FROM [Sheet1$]"の部分をCOUNTにして
件数が取得できるかなー
と思うのです。
リンク先を読むと、adoでやってもあまり早くはならなそうですが一応やってみたいのです。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
"Microsoft.Jet.OLEDB.4.0" を "Microsoft.ACE.OLEDB.12.0" に
"Excel 8.0" を "Excel 12.0" に変更してみてください。
Sub try()
Const adOpenStatic = 3
Const sProvider = "Microsoft.ACE.OLEDB.12.0"
Const sExtended = "Excel 12.0"
Const sDtSource = "D:\Book1.xlsx"
Const sSQL = "SELECT * FROM [sheet1$]"
Dim wkCon As Object
Dim wkRst As Object
Set wkCon = CreateObject("ADODB.Connection")
With wkCon
.Provider = sProvider
.Properties("Extended Properties") = sExtended
.Properties("Data Source") = sDtSource
.Open
End With
Set wkRst = CreateObject("ADODB.Recordset")
wkRst.Open sSQL, wkCon, adOpenStatic
Debug.Print wkRst.RecordCount
wkRst.Close
wkCon.Close
Set wkRst = Nothing
Set wkCon = Nothing
End Sub
やはり"Excel 8.0"ではダメなようですね。
そして"Microsoft.Jet.OLEDB.4.0"もダメなのですか。
この部分だけではなく、サンプルコードまで作っていただきありがとうございます。
無事件数の取得ができました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メモ帳で開く設定を元に戻したい。
-
Windows11で画面下の帯の部分で...
-
エクセルでファイルを閉じても...
-
エクセルの添付ファイルに記入...
-
エクセルを開いたときのシート
-
エクセルにクリックすると指定...
-
400KBのエクセルは重いの?
-
マルチモニター設定をしても2画...
-
エクセルで複数のブックで「元...
-
2画面を使ってシート別に表示す...
-
共有しているEXCELシートのアク...
-
開くと警告の出るExcelファイル...
-
三四郎のファイルをエクセルで...
-
エクセルのファイルを開くと部...
-
エクセルのシートが常に小さく...
-
エクセルを閉じた時、ノッペラ...
-
excel 突然容量が増える原因
-
PRNファイルをエクセルEXCELで...
-
CSVファイルでVBAを動かす方法
-
パワーポイントをエクセルファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メモ帳で開く設定を元に戻したい。
-
エクセルでファイルを閉じても...
-
Windows11で画面下の帯の部分で...
-
エクセルで複数のブックで「元...
-
エクセルを閉じた時、ノッペラ...
-
エクセルの添付ファイルに記入...
-
CSVファイルでVBAを動かす方法
-
エクセルを開いたときのシート
-
エクセルにクリックすると指定...
-
ExcelファイルがDoxillionに突...
-
エクセルのハイパーリンクがう...
-
Google Todoリスト
-
エクセルの塗りつぶしの色が勝...
-
CSVファイル
-
共有しているEXCELシートのアク...
-
エクセルVBAでアクセスファイル...
-
メモ帳(拡張子log)の数字デー...
-
開くと警告の出るExcelファイル...
-
400KBのエクセルは重いの?
-
Lotus 1-2-3のファイルをExcel...
おすすめ情報