2

VBAコードはうまく機能します:

Sub testVBA()

    Dim wb As Object ' Lotus123.Document
    Set wb = GetObject("S:\Temp\T\0375D.WK3", "Lotus123.Workbook")

End Sub

VB.net コードが失敗します:

Sub TestVBNet()

    Dim wb As Object ' Lotus123.Document
    wb = GetObject("S:\Temp\T\0375D.WK3", "Lotus123.Workbook")

End Sub

VB.net で FileNotFoundException が発生します。「オートメーション操作中にファイル名またはクラス名が見つかりませんでした。」

VBA から実行できるので、ファイルが存在し、クラス名が存在することを意味します。では、なぜ機能しないのか、VB.net で修正するにはどうすればよいでしょうか。

編集:これを診断する方法がわからない. おそらく、VB.net は別の方法を使用してクラスをアクティブ化します。レジストリ エントリが見つからない可能性があります。どんな提案でもうれしいです。

編集 2: CreateObject も使用してみましたが、「ActiveX コンポーネントを作成できません」というエラーが発生しました。予想外ではありません。

4

3 に答える 3

0

ファイルを Excel ワークブックに読み込みます。lotus123 ワークブックをオンザフライで変換できるはずです。

于 2014-01-08T19:18:23.247 に答える
-2

まず、インクルード ([ツール] メニューの下、インクルードまたは参照など) に Lotus123.Document を参照するライブラリが含まれていることを確認します。「Microsoft Excel 14.0 Object Library」などにある可能性があります。

VB は VBA ではないと聞いたことがあります。

于 2014-01-08T18:59:35.903 に答える