LibreOfficeマクロ:セルの操作いろいろ試す(Range,Cells)

LibreOfficeセル操作

LibreOfficeはマイクロソフトOfficeと同じ部類のソフトです。無料で使える素晴らしいソフトです。LibreOffice Basicは、なかなか説明サイトないので苦労はします。

:_LibreOffice Calcで100マス計算問題作る

間違いありましたら、ご指摘ください。

Libreの開発環境よくないので、補完機能のあるエディタで編集する

外部エディタを使う

LibreOfficeのBasic開発環境低すぎるので、外部エディタで補完機能を使って開発できるようにしてみました。

秀丸(シェアウェア)補完機能色々設定できるので便利

HiMacroExで全選択+コピー、全選択貼り付けを自動で

これが記録し、改造したマクロです。

W Hidemaru32Class,LibreTmp.lio - 秀丸

Keys Ctrl+a
Keys Ctrl+c
'-------------------
W SALFRAME,マイマクロ & ダイアログ.Standard - LibreOffice Basic

Keys Ctrl+a
Keys Ctrl+v

少しでも、タイトル変わると動かないのでAutoHotkeyに変更

単に、全選択コピーし秀丸に貼り付け終わったらその逆
秀丸で全選択コピー、Libreに貼り付けています。

Pause::
WinActivate, ahk_class Hidemaru32Class
send, ^a
send, ^c

WinActivate, ahk_class SALFRAME
send, ^a
send, ^v
Return

セルに値を入れる-Cells(1,1) = getCellByPosition(0,0)

Cells(1,1)    =>  getCellByPosition(0,0)
Rang(“A1”) =>  getCellRangeByName(“A1”)

参考サイト(1):

(1)VBAのままでは、上図のようにエラーになります。

Cells(1,1).Value = "123456"

(2)次のように、おまじないがたくさん必要です。

Sub Main
  Dim oSheet as object
  oSheet=ThisComponent.CurrentController.ActiveSheet
  '//osheet.getCellByPosition(1,1).value="123456"
  osheet.getCellByPosition(1,1).value=123456
End Sub

getCellByPosition(1,1)

VBAの(1,1)は LibreOfficeでは(0,0)

(5,7)は(6,4)   右左逆にし、-1

value=”123456″ でも動きますが””いらない、文字だと0が表示されます。


セル指定方法-Range(“A1”) = getCellRangeByName(“A1”)

Sub Main
  Dim oSheet as object
  oSheet=ThisComponent.CurrentController.ActiveSheet
  osheet.getCellByPosition(1,1).value= 123456
  osheet.getCellRangeByName("c5").value= 78900  
End Sub

getCellRangeByName(“c5”)

“”の中にRangeの名前を入れます。

range

セルの背景色を変える

Sub Main
Dim oDoc As Object
Dim oCell As Object
oDoc = ThisComponent.Sheets(0)
'//------------------------------
oCell = oDoc.getCellRangeByName("A7")
oCell.String = "日本が最高!!"
oCell.CellBackColor=RGB(0,255,0) '//背景色
End Sub

セルの後ろの色を変えてます。

セル背景色

セルの文字色 .CharColor

oCell.CharColor=RGB(0,255,255) '//文字色

選択されてるセルの操作

現在のアクティブセルに値を入れる .CurrentSelection

Sub Main
oSelect = ThisComponent.CurrentSelection
oSelect.String = "JAPAN"
End Sub
アクティブセルに値

コメント

タイトルとURLをコピーしました