ライブラリーをパスワードロックした場合のエラーと文字化けについて
Calcのライブラリーをパスワードロックした場合のエラーと文字化けについてお尋ねします
≪環境設定≫
1.Calcの新規odsファイルを作り、test1.odsという名前にします
2.ファイル内のSheet1を リスト名 という名前に変更します
2.セル座標C2に5をいれます
3.Standardではロックできない為、別途ライブラリーを作ります
マクロ → マクロの管理 → LibreofficeBasic → 管理 → ライブラリー
場所:test1.ods → 新規作成 → Library1 で新規にライブラリーを作ります
4.Library1内に以下のマクロ(例)を登録します
Sub Main
If ThisComponent.Sheets.getByName("リスト名").getCellRangeByName("C2").value < 3 Then
MsgBox "データが3未満です、処理を終了します",0+32,"処理を終了します"
Exit Sub
Else
MsgBox "データが3より大きいです",0+32,"処理を継続します"
End If
End Sub
【以下のような症状が出ます】
5.パスワードでライブラリーをロックする前には正常
6.パスワードでロックして保存後、ファイルを一度閉じた後、再度開いてマクロを実行すると
BASICランタイムエラー、例外が発生しました
Type:com.sun.star.container.NoSuchElementExceptionMessage。
と表示されます
7.次にリスト名というシートを listmei に変更し、モジュールもgetByName("リスト名")をgetByName("listmei")に変更してパスワードロックして保存、再度開くと、エラーにはなりませんがmsgboxの日本語がすべて?で表示されてしまいます
これはOpenofficeの過去(2009年頃)の掲示版で示されているのと同じバグなのでしょうか?
どうも日本語がすべて化けるようで、パスワードロックが必要なモジュールを使う場合に困っています。
以下の対策以外で対応できることがあれば教えていただけると助かります。
Openoffice掲示板では
1.パスワードロックしない
2.日本語を文字コードに変える
3.日本語をロックしないライブラリに置いて呼び出す
とありました。
またバグであれば対応の予定はあるのでしょうか?
OS:Windows7pro
使用バージョン:LibreOffice 3.4.4 OOO340m1 (Build:402)
早速の回答ありがとうございました、Oooと同じなんですね
ある意味、バグと思うのですが、いつごろ改善される予定なのでしょうかね? 早く改善していただきたいものです。
URLエンコード、動かしてみました、UTF-8でエンコードするのですね、パスワードロックしても動作しました。
ありがとうございました、これで一歩前進することができます。
助かりました
今後ともよろしくおねがいいたします
ほかに何か別の手段を実行してある方がいらっしゃいましたら、是非教えてください。
今後の参考にさせていただければうれしいです。
よろしくおねがいします
多分OOoとおんなじ問題だと思います。
私が思いつくのは、URLエンコードくらいでしょうか。
「データが3未満です、処理を終了します」はURLエンコードすると「%E3%83%87%E3%83%BC%E3%82%BF%E3%81%8C3
%E6%9C%AA%E6%BA%80%E3%81%A7%E3%81%99
%E3%80%81%E5%87%A6%E7%90%86%E3%82%92
%E7%B5%82%E4%BA%86%E3%81%97%E3%81%BE
%E3%81%99」になります。(見にくかったので改行いれてます)
これをデコードすれば良いのではないかな、と思います。
ThisComponent.getSheets.getByIndex(0).getCellRangeByName("A1").setString(ConvertToURL("データが3未満です、処理を終了します"))
MsgBox(ConvertFromURL("%E3%83%87%E3%83%BC%E3%82%BF%E3%81%8C3%E6%9C%AA%E6%BA%80%E3%81%A7%E3%81%99%E3%80%81" & _
"%E5%87%A6%E7%90%86%E3%82%92%E7%B5%82%E4%BA%86%E3%81%97%E3%81%BE%E3%81%99"))