タイトル : Re^3: エクセルの非表示シートを削除したい 投稿日 : 2022/05/24(Tue) 17:19 投稿者 : 魔界の仮面弁士
> エクセルは2013年、32ビット版です。 > vb6.0で作業をしていますが、 標準 EXE プロジェクトを新規作成した状態でも、参照設定できない状況でしょうか。 > 参照設定のMicrosoft Excel 16.0 Object Libraryに 2013 で 16.0 ですか? もしかしたら、開発環境の不整合が生じているのかもしれませんね。 "Microsoft Excel 16.0 Object Library" → Office 2016 / 2019 "Microsoft Excel 15.0 Object Library" → Office 2013 "Microsoft Excel 14.0 Object Library" → Office 2010 "Microsoft Excel 12.0 Object Library" → Office 2007 "Microsoft Excel 11.0 Object Library" → Office 2007 "Microsoft Excel 10.0 Object Library" → Office XP "Microsoft Excel 9.0 Object Library" → Office 2000 Office 2013 とは別に、2016/2019 世代の Office 製品が 共存インストールされてたことはなかったでしょうか。 Office ライブラリは複数バージョンを切り替えて使えるような設計にはなっていないため、 開発環境は複数の Office バージョンを共存させないことが望ましいです。 > 参照設定には、Microsoft DAO 3.6 Object Library にチェックが入っています。 DAO は必須ライブラリでは無いため、一度それを外してみてください。 VB6 が手元に無いので確実なことは言えないのですが、 最低限必要なのは先頭 3 〜 4 個程度だったはず。 こんな名前だった気がするけどうろ覚え。 ・Visual Basic For Applications ・Visual Basic objects and procedures ・Visual Basic runtime objects and procedures ・OLE Automation > それで、Dim xlApp As Excel.Application、Dim xlBook As Excel.Workbook、Dim xlSheet As Excel.Worksheet等が使えなく、 > 何を使って作業すべきかが分からないのです。 どうしても参照設定が使えない場合は、レイトバインドで動くかどうかを試してみてださい。 Dim xlApp As Object Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True Dim xlBook As Object Set xlBook = xlApp.Workbooks.Add() Dim xlSheet As Object Set xlSheet = xlBook.Worksheets(1) xlSheet.Range("A1").Value = "Hello World!" 「定数を自分で宣言しなければならない」 「WithEvents 変数によるイベント処理が使えない」 などのデメリットはありますが、複数バージョンが混在した環境でも 動作させられる可能性があります。 |