tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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 は、
すべて同じインスタンスを意味しますし。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。