0

CSV ファイルのデータを ListView に表示するプログラムがあります。次に、「レポート」というボタンがあります。これをクリックすると、OpenOffice Calc の ListView/CSV ファイルからデータが表示されます。

これは私のコードです:

Private Sub cmdReports_Click()
Dim oSM As Object
Dim oDesk As Object
Dim oDoc As Object
Dim oSheet As Object
Dim i As Integer

'Instanciate OOo : this line is mandatory with VB for OOo API
Set oSM = CreateObject("com.sun.star.ServiceManage…
'Create the first and most important service
Set oDesk = oSM.CreateInstance("com.sun.star.frame.D…
'Create a new doc
Set oDoc = oDesk.loadComponentFromURL("private:fact… "_blank", _
0, arg())
'Get the first sheet in the doc
Set oSheet = oDoc.getSheets().getByIndex(0)


With oSheet
For i = 1 To ListView1.ListItems.Count
.cells(i, 1) = ListView1.ListItems(i).Text
.cells(i, 2) = ListView1.ListItems(i).SubItems(1)
.cells(i, 3) = ListView1.ListItems(i).SubItems(2)
.cells(i, 4) = ListView1.ListItems(i).SubItems(3)
Next
End With
End Sub

現時点では、すべてのボタンで実行時エラー '438' オブジェクトがこのプロパティまたはメソッドをサポートしていません この行をデバッグすると、次の行が強調表示されます。

.cells(i, 1) = ListView1.ListItems(i).Text

このコードは Excel 用に書かれていますが、OpenOffice Calc で表示できるように編集しました。誰でも助けてもらえますか?ありがとう

4

1 に答える 1

0

まさにそのとおりです。ステートメントは、Ole Automation インターフェイスでサポートされていないメソッドのプロパティを使用しています。最初の質問: タイプ ライブラリを使用できますか (参照ダイアログを参照してください。リストに OpenOffice Calc のようなものはありますか)。コンパイル時に使用できるメソッドとプロパティを把握しておくと、はるかに優れています。Microsoft Excel でも同じことができます。次に、変数を「オブジェクトとして」ではなく、特定の型として宣言できます。

OpenOffice を知らなかったので、OpenOffice に関するドキュメントを探したところ、次善の策である Star Office を見つけました。http://www.openoffice.org/api/basic/man/tutorial/tutorial.pdfを試してください 。スプレッドシートのドキュメントについては、64 ページのセクション 4.4 を参照してください。オブジェクト モデルが Office とは異なって見えるため、問題が説明されます。

Cells() メソッドではなく、Sheet.getCellByPosition() メソッドを使用する必要があるように見えます。

GetCell = oSheet.getCellByPosition (nColumn , nRow)
于 2012-07-19T00:16:43.147 に答える