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

タイトル Re^3: Excel ComObjectの解放
投稿日: 2014/10/31(Fri) 10:10
投稿者花ちゃん
> > > xlChart = DirectCast(xlCharts(0), Excel.ChartObject)
> > これは
> >  xlChart = DirectCast(xlCharts.Item(1), Excel.ChartObject)
> > だとどうでしょう。
> 変更してみたところ
> COMException' のハンドルされていない例外が mscorlib.dll で発生しました
> HRESULT からの例外:0x800A03EC
> となりました。

横から失礼します。
このグラフは、Sheet1(xlSheets("グラフ")) とかの上に書かれているグラフでしょうか?
それとも、 Graph1 とかの グラフ用のシート上に書かれているグラフでしょうか?
xlSheets("グラフ") 上に書かれているグラフなら
xlSheet_g = DirectCast(xlSheets("グラフ"), Excel.Worksheet)
xlCharts = DirectCast(xlSheet_g.ChartObjects, Excel.ChartObjects)
xlChart = DirectCast(xlCharts.Item(1), Excel.ChartObject)   '-------@
xlChart1 = xlChart.Chart
でエラーもなくプロセスも解放されました。

但し、私の環境では、xlSheets("Sheet1") に変更し、XlAxisGroup.xlPrimary で試した結果ですが。
その他は、投稿されたコードを使って、起動・終了は、ここのサイトに掲載のコードを使って試して見ました。
(Excel 2013 /Sheet1上に書かれたグラフを使って、)

xlChart = DirectCast(xlCharts.Item(1), Excel.ChartObject) でエラーがでるのなら、既存のグラフが
参照できていない等が原因かと
xlChart = DirectCast(xlCharts(0), Excel.ChartObject) で試すとエラーはでませんがプロセスが残りました。

グラフの表示・修正部分のコードをコメントにした場合は、プロセスは解放されているのですよね?

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

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