![LibreOfficeセル操作](http://take-web.com/task_help/wp-content/uploads/2020/10/libreoffice_basic_Cell-08.png)
![](http://take-web.com/task_help/wp-content/themes/cocoon-master/images/man.png)
LibreOfficeはマイクロソフトOfficeと同じ部類のソフトです。無料で使える素晴らしいソフトです。LibreOffice Basicは、なかなか説明サイトないので苦労はします。
:_LibreOffice Calcで100マス計算問題作る
間違いありましたら、ご指摘ください。
Libreの開発環境よくないので、補完機能のあるエディタで編集する
![外部エディタを使う](http://take-web.com/brog/wp-content/uploads/basic_editor_13.png)
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](http://take-web.com/cad/wp-content/uploads/2016/09/Range.gif)
セルの背景色を変える
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
セルの後ろの色を変えてます。
![セル背景色](http://take-web.com/brog/wp-content/uploads/backcolor-1.png)
セルの文字色 .CharColor
oCell.CharColor=RGB(0,255,255) '//文字色
選択されてるセルの操作
現在のアクティブセルに値を入れる .CurrentSelection
Sub Main oSelect = ThisComponent.CurrentSelection oSelect.String = "JAPAN" End Sub
![アクティブセルに値](http://take-web.com/brog/wp-content/uploads/select-cell.gif)
コメント