私は自分の仕事にCalc(OpenOfficeから)を使用しています。OpenOfficeでは、この「時間更新機能」の何が問題になっていますか?
私はこのように、スプレッドシートを持っている:
列Fが更新されている場合は、列Eは、現在の編集時に印刷されます。
私は私の仕事のために、このマクロを書かれている:
の場合:
今Option VBASupport 1
Global oListener As Object
Global oScalcDocument As Object
Global oGroup6 as Object
Global CurRow as integer
Global GnameCO as String
Global Gcheck_name as Boolean
Sub RangeEventlistenerOn
CurRow = 0
oScalcDocument=ThisComponent
'---installation of an event listenr
oListener = createUnoListener("OOO_","com.sun.star.chart.XChartDataChangeEventListener")
oSheet = oScalcDocument.Sheets(0)
oSheet.Protect("")
oGroup6=oSheet.getColumns.getByIndex(5)
oGroup6.addChartDataChangeEventListener(oListener)
End Sub
Sub RangeEventlistenerOff
oGroup6.removeChartDataChangeEventListener(oListener)
End Sub
Sub OOO_chartDataChanged
CurRow = 2
'print(CurRow)
oScalcDocument=ThisComponent
oSheet = oScalcDocumet.Sheets(0)
'Get cell address
oSelection = oScalcDocument.getCurrentSelection
oRangeAddress = oSelection.getRangeAddress
CurRow = oRangeAddress.StartRow
oCell = oSheet.getCellByPosition(4,CurRow)
oCell.SetString(Format(Now,""DD.MM.YYYY hh:mm:ss"))
End Sub
Sub Refresh()
Refresh_data (Format(Date, "DD.MM.YYYY"))
MsgBox("Work finished")
Exit Sub
Exit Sub
End Sub
Sub Save()
Save_data(Format(Date, "DD.MM.YYYY"))
Exit Sub
End Sub
、私はこのように、他のレイアウトにこのスプレッドシートを変更したいです行2が更新された場合、行3は、現在の編集内容g時間。
だから、私は私の仕事のためにこのマクロを変更しました:
Option VBASupport 1
Global oListener As Object
Global oScalcDocument As Object
Global oGroup6 as Object
Global CurCol as integer
Global GnameCO as String
Global Gcheck_name as Boolean
Sub RangeEventlistenerOn
CurCol = 0
oScalcDocument=ThisComponent
'---installation of an event listenr
oListener = createUnoListener("OOO_","com.sun.star.chart.XChartDataChangeEventListener")
oSheet = oScalcDocument.Sheets(0)
oSheet.Protect("")
oGroup6=oSheet.getRows.getByIndex(2)
oGroup6.addChartDataChangeEventListener(oListener)
End Sub
Sub RangeEventlistenerOff
oGroup6.removeChartDataChangeEventListener(oListener)
End Sub
Sub OOO_chartDataChanged
CurCol = 2
'print(CurCol)
oScalcDocument=ThisComponent
oSheet = oScalcDocumet.Sheets(0)
'Get cell address
oSelection = oScalcDocument.getCurrentSelection
oRangeAddress = oSelection.getRangeAddress
CurCol = oRangeAddress.StartColumn
oCell = oSheet.getCellByPosition(3,CurCol)
oCell.SetString(Format(Now,""DD.MM.YYYY hh:mm:ss"))
End Sub
Sub Refresh()
Refresh_data (Format(Date, "DD.MM.YYYY"))
MsgBox("Work finished")
Exit Sub
Exit Sub
End Sub
Sub Save()
Save_data(Format(Date, "DD.MM.YYYY"))
Exit Sub
End Sub
更新されたコードが正しく動作しません。あなたは私に教えてください:変更の何が間違っていますか?
"正しく動作しない"と言えば、どういうことが起こりますか?あなたが保持したいものや停止したいことを含め、何がしているかを記述し、発生したエラーメッセージの全文とタイミングを提供してください。 – Lyrl
また、行2(インデックス1)の変更に基づいてマクロをアクティブにするように言うときに、行3(インデックス2)にリスナーを追加することに気付きます。また、行3(インデックス2)に印刷したいと言うときに、行4(インデックス3)の時間を印刷しています。 – Lyrl