Calc VBASupport 1におけるRange.fontについて

私は普段主にEXCELを中心にPCを触っていてCalcのVBAが
VBASupport 1によって、EXCELとほぼ近しいものが使えることを
喜んでいるものです。
ただイミディエイトウィンドウが無いことを障壁と思っていて
中でも、オブザーバーの存在を知ってから、オブジェクト変数が
直に参照できるので、俄然使えそうとおもっていました。
しかし下記のコードで
Sub 練習1()
dim o as object , f as object
set o=Range(“A1”)
set f = o.font
Range(“A1”).Font.Size = 16
Range(“A1”) = “おはよう!”
End Sub
フォントサイズが変わらない為、oとfのオブジェクトを
追尾するとsizeは確かに書き換わっているにも関わらず
フォントサイズに変化がありません。
どうやら英字フォントだとsizeの変更が直に反映されるけど
標準の游ゴシックではうまくいかないみたいです。

そこで疑問なのはそもそもoのメンバーにfが無いんです。
このメンバーにオブザーバーでは表示されないプロパティは
どのように知ることが出来るかわかる方おられますか?

また游ゴシックのsizeに到達するにはどんなコードが必要なんでしょう?

Libreのソースを読解する能力があったらいいのですが・・・・。

Msgbox o.DBG_Properties
Msgbox o.DBG_Methods
Msgbox f.DBG_Properties
Msgbox f.DBG_Methods

で見ると、Fontはなぜかメソッドの中にありました。

o.CellRange.CharHeightAsian = 16

LibreOffice Basic で書かないと日本語フォントサイズは変更できなそう。
エクセルVBAではSizeを変更すると全言語のフォントサイズが変わるならバグレポ必要かな~

3 Likes

返事が遅くなって大変申し訳ありません。
DBG_Properties、DBG_Methodsいずれも初見の言葉でした。
オブザーバーではメソッドが見えてない感じなのかな。
教えていただいたことを下にメソッド関連を改めて調べてみます。
見つかったら報告させていただきますので。
バグレポについてももう少し調べてからにします。

多分ですが、制御構造が異なるんでしょうね。
CellRangeなるものがEXCELには存在しませんね。
ですから、バグと言うよりもLibreを含むCalcでは言語によって
処理を分けちゃったけどEXCELでは分かれてないよ
っていうことじゃないかと思いました。

その上で今回教えてもらったDBG_Methodsは
今まで見つけられなかったオブジェクトのメンバーを
見つけるための、私にとっては飛躍的進歩で、大きな一歩に
なりました。改めてありがとうございます。
展望がすごく開けた気持ちでおります。

1 Like