「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:1
昨日:0
総数:2257
現在:7


setDataArrayでセルに書き込んだ文字が見えない!

ページOpenOffice.org FAQの登録ページ
投稿者mr_happy
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2011-05-01 14:35:32 (日)
OSWin7
依存するページfqa 6/238
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

こんにちは、お世話になります。 部分的ですが、下記のようにしてセルに一括して書き込みをする作業を研究中です。

Dim x1 As Integer, y1 As Integer, x2 As Integer, y2 As Integer
Dim vnBf(4), mm(4)
   For nSno=1 To 5
       For nKtnNo=1 To 5
           mm(nKtnNo-1)=cnKei(nKtnNo, nSno)
       Next
       vnBf(nSno-1) = Array(mm(0),mm(1),mm(2),mm(3),mm(4))          
   Next
   x1=57:     y1=9   
   x2 = Ubound(vnBf(0)) + x1
   y2 = Ubound(vnBf)    + y1  
   oSht=ThisComponent.Sheets(1)
   oSht.getCellRangeByPosition(x1,y1,x2,y2).setDataArray(vnBf) 

これで動作は目的道理行われるのですが、シートを見ると何も書き込まれていません!。 いや、書き込まれているようなのですが、見えません。

この意味は、マウスをセル上に持ってゆくと、 数式入力欄には書き込まれた数字が表れます。 しかし、セルには無いのです。

書き込まれたと思われる部分をスクロールし、 一度隠してから 再び戻すと見える=書き込まれているのです。

更に、セルに現れた数字を消そうとしても(DEL,クリアなど)消えません! 結局、行を削除して消し、テストを続けています。

なぜこんなことが起こるのでしょうか? お分かりの方がおりましたら、ご教授ください。お願いします。


画面更新?

M.Kamataki (2011-05-02 20:32:14 (月))

マクロの実行速度を上げるために画面更新をロックしていませんか? 以下のページを参考にしてください。

コントローラのロック
http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?OOoBasic%2FGeneric%2FlockControllers

ロックはされてないようですが

mr_happy (2011-05-03 08:29:35 (火))

ありがとうございます。~
以下で調べてみましたが、結果は「FALSE」となり、ロックはされてないようです。

Sub LockChk
 Dim oDoc
 oDoc = ThisComponent
 If oDoc.hasControllersLocked =TRUE then
    msgbox "TRUE"
 else: msgbox "FALSE"
 End If   
End Sub

次のでもいいのでしたね

Sub LockChk
 Dim oDoc
 oDoc = ThisComponent
 msgbox oDoc.hasControllersLocked
End Sub

LockChkではいつもFALSEになる?!

mr_happy (2011-06-05 16:05:00 (日))

こんにちは。fqa 6/238 を見て自分のは変だなぁ、もう一度と思いながら
次のことをしてみました。下記のマクロで~
lockBook → LockChk ・・・MsgBoxは TRUE → FALSE とメッセージ~
UnlockBook → LockChk ・・・MsgBoxは FALSE → FALSE とメッセージ~

この結果、ロックされていてもいなくてもLockChkではFALSEになるということでした。どこがまずいのでしょうか。宜しくご教示のほどを。

Sub LockChk
 Dim oDoc
 oDoc = ThisComponent
 msgbox oDoc.hasControllersLocked
End Sub

Sub lockBook
 Dim oDoc 
 oDoc = ThisComponent
 oDoc.lockControllers()
 msgbox oDoc.hasControllersLocked
End Sub

Sub UnlockBook
 Dim oDoc 
 oDoc = ThisComponent
 oDoc.unlockControllers()
 msgbox oDoc.hasControllersLocked
End Sub

LibreOfficeの不具合っぽいですね

M.Kamataki (2011-06-05 16:59:29 (日))

mr_happyさんがお使いのものは、「3.3.2」ということなので、LibreOfficeですよね。確かにLibreOfficeでは、動作がおかしいようです。LibreOfficeの不具合・要望データベースであるBugZillaに以下の登録がありました。

calc: Basic scripts do not redraw table when macros are working
https://bugs.freedesktop.org/show_bug.cgi?id=34655

この不具合が直るまで、lockControllers は使わないほうが良いかもしれません。一方、addActionLock は機能するようです。

なお、OpenOffice.org 3.3.0では不具合はないようです。

再現しません

ike@九州 (2011-06-06 08:56:29 (月))

Sub Test
 lockBook   'true
 LockChk    'true
 UnlockBook 'false
 LockChk    'false
End Sub

Win7 64bit LibreOffice3.3.2
こちらでは再現しません。

3.4をインストールで解消

mr_happy (2011-06-06 16:02:51 (月))

M.Kamataki さん、ike@九州さんありがとうございます。
3.4をインストールで解消できました。

ただ、3.3をアンインストールしたとき、ちらりと見えたバージョン番号~
確か3.3.202だったような気がします。~
ike@九州さんのは「Win7 64bit LibreOffice3.3.2」の後の番号もあるのでしょうか? 例えば3.3.208とか???

一応完了にしておきます。

舌足らずでした

mr_happy (2011-06-06 16:09:09 (月))

「3.4をインストールで解消できました」は、もともとの問題「見えない」のことではなくロックのTRUE,FALSEの事です。
「見えない」件は保留でなければならなかったのでした。つまりまだテストはしていませんので。~
なので、完了は保留します。

今確認!

mr_happy (2011-06-06 17:21:08 (月))

Vr3.4.0で今、確認しました。
ロックされていると「見えない」が再現されました。
もちろんアンロックなら「見える」状態です。
皆さん、ありがとうございました。これで完了です。

お名前:
題名: