marmeleiro / kintoneDataReaderforVBA

サイボウズ・kintoneのデータをExcel側から抽出するためのVBAクラスです。
MIT License
7 stars 2 forks source link

EXCEL VBA 64Bit でエラー #4

Closed tappu77 closed 1 year ago

tappu77 commented 4 years ago

EXCEL 64Bitでデータを取得するとオートメーションエラーが発生します。 VBA-Dictionaryで確認していたら Declare PtrSafe Function xx かと思い探しましたが、判断が出来ませんでした。 ちなみに、フィールド一覧は取得出来ますし、 他のPCで32bit版のEXCELではデータの受信も出来ました。 また、テーブルはテンプレートを使用して3レコード登録したサンプルで 容量は大きくありません。

対処方法をご教授頂けませんでしょうか?

Win10 64bit + Office365 64bit(buld 1908)での使用となります。

marmeleiro commented 4 years ago

同じ環境を当方で準備して確認することはできませんので、そちらの環境でデバッグしていただき、具体的にどの部分でエラーが発生するか教えていただけますか。

hiraharuhi commented 4 years ago

現象再現しました。 私も、 Win10Pro 64bit Office2019 (バージョン2004 ビルド12730.20270)の64ビット版に入れ替えたところ、同一現象が発生してしまい、困っています。解決法のアドバイスを頂けましたら幸いです。

ここで提示なさっているexamle.xlsmでの再現です。 標準モジュールexample Public Sub btnData_Click()の終了処理で  Set kintoneUtil = Nothing  としたときに呼ばれる、クラスのデストラクタ  Private Sub Class_Terminate() で、 Call kvu_ClearRecordset をしています。

 エラーは、この kvu_ClearRecordset 内で起きます。  おそらく、Erase kvu_Recordset した結果、オートメーションエラーが出るようですが、  タイミングによっては発生しないこともあるようで、当該行にブレークポイントを置いて処理を一時停止後、実行再開するとエラーは発生しません。  また、オートメーションエラーではなく、Excelそのものが異常終了(落ちる)こともあります。

つたないレポートで、恐縮ですが、解決の糸口になればとの思いで、書き込ませて頂きました。 どうか、宜しくお願いします。 

hiraharuhi commented 4 years ago

症状改善(暫定対策)

自己レスですみません。エラーは出なくなりましたので、ご報告です。 知恵が無いのをさらけ出すようで恥ずかしいのですが、 上記の kvu_ClearRecordset サブルーチン内の  Erase kvu_Recordset の前に1ミリ秒のウェイトを入れたら(Sleep 1)、私の環境ではエラーが発生しなくなりました。 暫定対策として、これで使用継続するつもりです。 お騒がせしました。

marmeleiro commented 4 years ago

詳細ありがとうございます! 今の段階では根本的な解決法はまだ分からないのですが、調べてみます。

marmeleiro commented 1 year ago

v.1.3.2 で対応