SwitchMousePointer에는 속성 (oWindowPeer는 Object, bDoEnable은 부울)이 필요합니다. 따라서 단순히 이벤트에 할당 할 수는 없습니다. 그리고 그것은 당신이 생각하는 것을하지 않을 것입니다.
포인터를 변경하려면 자신의 Sub를 쓰는 것이 좋습니다. 또한 모든 마우스 이벤트에서이 작업을 수행 할 필요가 없습니다. 예를 들어 시트 활성화시 한 번 수행해야합니다.
OpenOffice.org BASIC 프로그래밍에 대한 소개는 https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide을 참조하십시오. 그리고 BASIC 매크로를 프로그래밍하고 싶다면 디버깅 도구가 필요합니다.
https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/UNO_Tools가 시트에 가정 한 후 "푸시 버튼 (1)"라는 이름의 버튼된다 : 따라서, 특히 볼
Sub ChangeMousePointer
oController = ThisComponent.CurrentController
oButtonModel = oController.ActiveSheet.DrawPage.Forms(0).getByName("Push Button 1")
oButtonControl = oController.getControl(oButtonModel)
oWindowPointer = CreateUnoService("com.sun.star.awt.Pointer")
oWindowPointer.SetType(com.sun.star.awt.SystemPointer.HAND)
oButtonControl.Peer.setPointer(oWindowPointer)
End Sub
이 시트 이벤트 활성화 문서에이를 할당합니다. 시트 탭을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 시트 이벤트를 선택하십시오. 다음 : 
버튼이 시트 (0)에있는 경우에만 문서를 여는 동안 시트 이벤트가 발생하지 않고이 시트가 앞에 있습니다. 이 경우 문서 이벤트 Open Document에서도 Sub ChangeMousePointer를 호출해야합니다.
Sub Document_Open
oController = ThisComponent.CurrentController
oSheet = oController.ActiveSheet
if oSheet.Name = ThisComponent.Sheets(0).Name then
if oController.ActiveSheet.DrawPage.Forms.Count > 0 then
if oController.ActiveSheet.DrawPage.Forms(0).hasByName("Push Button 1") then
call ChangeMousePointer
end if
end if
end if
End Sub
문서 이벤트 문서 열기 선택 도구에 매크로를 지정하려면 - 메뉴에서 사용자 지정 및 :
안녕 악셀을 당신의 좋은 답변에 대한 많은 감사합니다. 나는 그것을 시도하고 그것은 나를 위해 작동합니다. 단, 다른 시트를 선택한 후에 만 작동합니다. 시트 2를 선택한 다음 시트 1을 다시 선택하십시오. 시트 1에 버튼이 있습니다. 시트를 다시로드 할 때까지 포인터가 바뀌지 않습니다. 내가 여기 뭔가를 놓친 적이 있니? 고마워, 니게. –
죄송합니다. Openoffice 4.1.1 및 Libreoffice 4.2.6.2에서 저에게 도움이됩니다. 어떤 버전이 있습니까? –
AOO 4.1.1 Windows 8에서 스프레드 시트를 처음 열면 시트 탭을 선택하지 않아도 작동합니까? –