マクロにパスワードを掛けると文字が化ける †
ページ | OpenOffice.org FAQの登録ページ |
---|---|
投稿者 | new_OOo3 |
分類 | |
優先順位 | |
状態 | |
カテゴリー | |
投稿日 | 2009-09-13 14:21:29 (日) |
OS | WindowsXP |
依存するページ | Issue #65372 |
バージョン |
メッセージ †
回答ページでは行末に「~」を付加する必要はありません |
お世話になっております。
下記に記すマクロにおきまして、マクロにパスワードを掛けると文字が化けます。
これまでも同様な事があったのですが、今回は「はにゃさん」のサイトからコードを
コピーしたものに1行加えただけなので、当方のコードミスでは無いと思います。
つきましては、マクロにパスワードを掛けても文字化けが生じない対策をご教示頂けます様お願いします。
[Code]
Sub rectangleshape Dim oDoc As Object, oSheet As Object Dim oRectangleShape As Object, oDrawpage As Object Dim aPos As New com.sun.star.awt.Point Dim aSize As New com.sun.star.awt.Size oDoc = ThisComponent oSheet = oDoc.getSheets().getByIndex(0) oDrawPage = oSheet.DrawPage oRectangleShape = oDoc.createInstance("com.sun.star.drawing.RectangleShape") aPos.X = 400 aPos.Y = 500 aSize.Width = 1000 aSize.Height = 500 oRectangleShape.setPosition(aPos) oRectangleShape.setSize(aSize) oDrawPage.add(oRectangleShape) oRectangleShape.String="社外秘" ←本行のみ付け加えました。 End Sub
IssueTrackerに登録済みのようです †
M.Kamataki (2009-09-13 18:00:19 (日))
OpenOffice.orgの不具合・要望データベースであるIssueTrackerを調べてみました。以下のIssueが該当しそうです。文字列がUnicodeだと「?」にdestroyed(破壊)されるようです。
Protected macro: Unicode string would be destroyed when a macro be protected by password.
http://ja.openoffice.org/issues/show_bug.cgi?id=65372
日本語はUnicodeでしか表現できないので、不具合が直るまではパスワード保護はできませんねぇ。何度かターゲットが伸びて3.xになっているようです。回避するには「社外秘」を「Secret」とか英語にするしかないです。
Re: 文字化け †
はにゃ? (2009-09-13 20:54:16 (日))
面倒な方法ですが・・・。oRectangleShape.String=chr(31038) & chr(22806) & chr(31192)
文字列が長かったり多い場合には文字列を外部に用意しておくなどの方法が便利ですが、それも保護したい場合には方法がありません。
http://hermione.s41.xrea.com/pukiwiki/index.php?OOobbs2%2F19
Re: 文字化け †
M.Kamataki (2009-09-14 10:26:43 (月))
Basicなので、文字コードに変換しておけば確かにいけますね。今回のような例では有効な方法をご提示いただき、ありがとうございます。
IssueTracker登録済みにします †
M.Kamataki (2009-09-16 11:48:59 (水))
状態などを変更。