VB.Net でプログラムによって改ページを変更すると COM 例外 (コード 0x800A03EC) がスローされる
-
26-09-2019 - |
質問
VB.Net Excel COM 相互運用機能を使用して、プログラムによって生成される Excel スプレッドシート上の最初の水平改ページの位置をプログラムで変更しようとしています。これを行うコードは次のとおりです。
Dim range As Excel.Range
xlActualWS.Activate()
xlActualWS.PageSetup.PrintArea = "$A$1:$K$68"
range = xlActualWS.Range("A68", "A68")
xlActualWS.HPageBreaks(1).Location = range
System.Runtime.InteropServices.Marshal.ReleaseComObject(range)
HPageBreaksを設定する行では、COM例外コード0x800A03ECがスローされ、この検索に関連するものは実際には見つかりません。ここで私に何が欠けているのかわかる人はいますか?
解決
コードによると、改ページの位置を設定できないか、改ページが 0 つあるために無効なインデックスにアクセスしているようです。これを簡単にテストする方法は、次のとおりです。
- Count プロパティを確認します。
xlActualWS.HPageBreaks
利用可能な数を確認してください - Location プロパティのセットを削除し、エラーが消えるかどうかを確認します。
さらに、おそらく削除する必要があります ReleaseComObject
電話。これは正確に取得するのが非常に難しい API ですが、CLR はそれ自体で COM オブジェクト参照をクリーンアップすることに非常に優れています。
所属していません StackOverflow