OOobbs3/91
質問
いつもお世話になっております。 マクロのパスワードは、マクロの管理のライブラリで設定しました。 1.非表示にしたシート内のデータを現在表示されているシートにデータコピーするマクロで、 ・パスワード設定前は、正しくコピーされる。 ・パスワード設定後は、表示されている最後のシートのセル内容がコピーされてくる。 2.マクロでセルに文字(日本語)を入力するマクロで、 ・パスワード設定前は、正しく入力される。 ・パスワード設定後は、漢字部分が??となる。 どうしてこんなふうになるのでしょうか? 環境:Windows7 OpenOffice3.3.0 OOO330m20(Build9567) 以上、よろしくお願いいたします。 回答
感想,コメント,メモ
Sub copyFromPageToSheet(startRow As Long) ' Pageシートを別シートのstartRow行へコピーする On Error Goto ErrorHandler Dim oDoc As Object Dim oSheet As Object Dim oSheetP As Object Dim oController As Object Dim oTransferable As Object Dim oNewController As Object oDoc = ThisComponent oSheet = getSheetObj() oSheetP = getSheetObj("Page") oController = oDoc.getCurrentController() ' コピーする範囲を選択 oController.Select(oSheetP.getCellRangeByPosition(0, 0, PG_CVAL - 1, PG_RVAL - 1)) oTransferable = oController.getTransferable() ' コピー先を選択 oNewController = oDoc.getCurrentController() oNewController.Select(oSheet.getCellByPosition(0, startRow - 1) ) oNewController.insertTransferable(oTransferable) On Error Goto 0 Exit Sub ErrorHandler: ' エラー処理 Call errMsgShow(Err, Erl, Error$, "mdlBiz.copyFromPageToSheet") On Error Goto 0 End Sub Function getSheetObj(Optional val As Variant) As Object ' シートのオブジェクトを取得 val はシート名か番号で指定する On Error Goto ErrorHandler Dim oDoc As Object Dim valx As Variant oDoc = ThisComponent If IsMissing(val) Then ' パラメータがないときアクティブシート名にする valx = oDoc.CurrentController.ActiveSheet.Name Else valx = val End If Select Case TypeName(valx) Case "String" getSheetObj = oDoc.Sheets.getByName(valx) Case "Integer" getSheetObj = oDoc.Sheets.getByIndex(valx) Case Else getSheetObj = Nothing End Select On Error Goto 0 Exit Function ErrorHandler: ' エラー処理 Call errMsgShow(Err, Erl, Error$, "mdlALib.getSheetObj") On Error Goto 0 End Function |