QA@IT
«質問へ戻る

質問を投稿

.NetFramework4.0 でのExcelアクセス

VB.Net、.NetFramework4.5で、Excelに以下の方法でアクセスすることができました。

        Dim ExcelConnectString As String = 
            "Provider=Microsoft.ACE.OLEDB.12.0; " & 
            "Data Source=C:\Test\Test.xlsx" & ";" & 
            "Extended Properties=""Excel 12.0;HDR=YES;"""

        Dim conExcel As OleDbConnection 'Excle接続オブジェクト

        Try
            'Excelファイル接続
            conExcel = New OleDbConnection(ExcelConnectString )
            conExcel .Open()
        Catch ex As Exception
            Exit Sub
        End Try

        gconExcel.Close()

ところが、VisualStudioでプロジェクトのプロパティから.NetFramework4.5を4.0に変更すると、
gconExcel.Open()の箇所で「Microsoft.ACE.OLEDB.12.0プロバイダが登録されていません」という
エラーが発生します。
「Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント」を
再インストールしても変わりません。
https://www.microsoft.com/ja-jp/download/details.aspx?id=13255

プロジェクトのプロパティで4.5に戻すだけではエラーは解消せず、.vbprojのファイルをエディタで開いて、
「false」という箇所を削除するとまた正常に動作しました。

Windows8.1 64bitで、MS Officeは2013 32bit版です。
先の再頒布可能コンポーネントをインストールする際、Officeが32bitなので再頒布可能コンポーネントも
32bit版でしかインストールはできませんでした。

.NetFramework4.0ではこの方法ではアクセス出来ないのでしょうか?
アドバイスの程よろしくお願い致します。

VB.Net、.NetFramework4.5で、Excelに以下の方法でアクセスすることができました。
```vb
        Dim ExcelConnectString As String = 
            "Provider=Microsoft.ACE.OLEDB.12.0; " & 
            "Data Source=C:\Test\Test.xlsx" & ";" & 
            "Extended Properties=""Excel 12.0;HDR=YES;"""

        Dim conExcel As OleDbConnection 'Excle接続オブジェクト

        Try
            'Excelファイル接続
            conExcel = New OleDbConnection(ExcelConnectString )
            conExcel .Open()
        Catch ex As Exception
            Exit Sub
        End Try

        gconExcel.Close()
```

ところが、VisualStudioでプロジェクトのプロパティから.NetFramework4.5を4.0に変更すると、
gconExcel.Open()の箇所で「Microsoft.ACE.OLEDB.12.0プロバイダが登録されていません」という
エラーが発生します。
「Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント」を
再インストールしても変わりません。
https://www.microsoft.com/ja-jp/download/details.aspx?id=13255

プロジェクトのプロパティで4.5に戻すだけではエラーは解消せず、.vbprojのファイルをエディタで開いて、
「<Prefer32Bit>false</Prefer32Bit>」という箇所を削除するとまた正常に動作しました。


Windows8.1 64bitで、MS Officeは2013 32bit版です。
先の再頒布可能コンポーネントをインストールする際、Officeが32bitなので再頒布可能コンポーネントも
32bit版でしかインストールはできませんでした。

.NetFramework4.0ではこの方法ではアクセス出来ないのでしょうか?
アドバイスの程よろしくお願い致します。