0

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 がスローされ、この検索に関連するものを実際に見つけることができません。ここで何が欠けているのか誰にも分かりますか?

4

1 に答える 1

1

コードに基づいて、改ページの場所を設定できないか、改ページが 0 であるため、無効なインデックスにアクセスしているようです。これをテストする簡単な方法は、次のことです。

  • Count プロパティをチェックして、利用可能な数xlActualWS.HPageBreaksを確認します
  • Location プロパティのセットを削除し、エラーが消えるかどうかを確認します

さらに、おそらくReleaseComObject通話を削除する必要があります。これは、正しく理解するのが非常に難しい API であり、CLR はそれ自体で COM オブジェクト参照をクリーンアップするのに非常に優れています。

于 2010-09-28T18:02:09.000 に答える