タイトル : Re: AccessVBAでエクセルが解放がされない件 投稿日 : 2014/02/27(Thu) 16:26 投稿者 : 魔界の仮面弁士
> Microsoft Windpws Common Controls-2 6.0 これは Access 2013 付随のコンポーネントではありませんが、大丈夫でしょうか。 利用には、開発ライセンス(≠ランタイムライセンス)が必要となります。 ちなみに OWC、MODI、MSCAL も、現行の Access には付属していません。 > filePath = "D:\売上\日次売上\SalesDay.xlsm" マクロブックをお使いですね。 空の xlsx などを用いて検証してみてください。 VBA 側のコードに、対象オブジェクトが曖昧な記述が含まれていた場合、 それが原因で、外部からの呼び出し時に解放漏れを起こすケースがあるためです。 > Dim myDate, myExDate, myAccDate As Date この場合、Date 型となるのは myAccDate だけです。 前の 2 つは、既定のデータ型(特に指定がなければ Variant)として 解釈されますのでご注意ください。 もし、3 つともDate 型としたいのであれば、 Dim myDate As Date, myExDate As Date, myAccDate As Date のように記述する必要があります。すでに御存知かも知れませんが。 > Dim rsTbl As New ADODB.Recordset ここで New を付与するべきではありません。 > rsAcc.Open sql, conAcc, adOpenDynamic, adLockOptimistic, adCmdText adOpenDynamic タイプとは珍しいですね。 動的カーソルって使いにくくないですか? > Set xlApp = CreateObject("Excel.Application") 参照設定しているのなら、= New Excel.Application の方が良いと思います。 逆に、レイトバインドでコーディングしたいということであれば、 Excel への参照設定をしない方が、むしろ安全かと思います。 > myExDate = xlApp.Application.WorksheetFunction.Max(myRange) 'IR(20).xlsmの最新日付 この場合、xlApp.Application.WorksheetFunction は冗長だと思いますよ。 xlApp と xlApp.Application と xlApp.Application.Application は、 すべて同じインスタンスを意味しますし。 |