VB.Net でプログラムによって改ページを変更すると COM 例外 (コード 0x800A03EC) がスローされる

StackOverflow https://stackoverflow.com/questions/3815544

  •  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 オブジェクト参照をクリーンアップすることに非常に優れています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top