4

古いコードを Office 2000 から Office 2010 に移動していますが、Excel で列を自動調整する際に問題が発生しました。

動作していたコードは次のとおりです。

for x := 1 to LV.Columns.Count do
  XLApp.Columns[x].EntireColumn.AutoFit;

XLApp は TExcelApplication コンポーネントです

VBAを見ると、同等のコードは

 Columns("A:A").EntireColumn.AutoFit

範囲が VBA と一致するようにコードを変更するのは簡単ですが、それは問題ではないようです。コンパイラによって返されるエラーは次のとおりです。

Class does not have a default property

そして、[x]が強調表示されます。コード補完は、個々の列を整数または範囲として選択する方法を提供しません。

助言がありますか?

4

1 に答える 1

7

あなたが持っているコードは、遅延バインドされた COM で機能します。しかし、アーリー バウンド COM を使用していると述べています。

早期バインド COM の場合、次のようなものを使用する必要があります。

ExcelApp.Range['A1','A1'].EntireColumn.AutoFit;

コードが過去にどのように機能したかを説明することはできません。おそらく、Excel タイプ ライブラリから作成されたインポート ユニットは、微妙に異なっていたのでしょう。

于 2013-03-18T10:53:22.113 に答える