LibreOffice : マクロBasic入門-はじめての使い方

LibreOffice Basic入門

マイクロソフトのExcel高すぎます。無料で使えるLibreOfficeはすばらしい。でも、マクロは癖がありすぎ理解しづらいです。
VBAモードあるので簡単なものは、VBAで動かせます。また、Autoit・AutoHotkeyというスクリプト言語でも動かせます。Pythonでも扱えるようです。
Excel = Calc , Word = Writer

こちらは「OPenOffice」:


マクロBasicで作った4マス~100マス問題:

AutoitでもLibreOfficeが簡単に操作できます

Autoitとは:Basic似のスクリプト言語で、簡単にPCの自動化できます。

はじめての「Hello World !!」

Hello World

◎ ここでPDFファイルとして、ダウンロードできます。

簡単な使い方のみです。

ただし、登録しログインしないとできません。

Snap_170130_085724

かんたんPDFで読むと、書き込みができるので見やすくなります。

(1) Basicマクロの編集方法

Snap_170130_091237

上の画像のように、「ツール」>「マクロ」>「マクロ管理」>「LibreOffice Basic」と選択し、エディタを開きます。

Snap_170130_093338

「編集」をクリックするとエディタが起動します。

Snap_170130_093344

Basic エディタの開き方(動画):

マクロが動かなかったとき

セキュリティレベル
JAVA必要

動かないときは、上のエラーが出ると思います。

解決方法は:

「セルに値入れる」簡単サンプル

:_参考にしたサイト こちらのサイト何度も読むと理解できてきます。

Calcにアクセスするには:
StarDesktop.CurrentComponment.
ThisComponent.
この2つのどちらかを使うようです。

ただし、「StarDesktop.CurrentComponment.」はBasicエディタからは動きません。Calcのシートから動かしてください。

文字列

Sub Main
ThisComponent.Sheets(0).getCellByPosition(0,0).String="Libre Calc"
End Sub

数値

Sub Main 
ThisComponent.Sheets(0).getCellByPosition(0,0).Value = 789
End Sub

文字の色を変える

Sub Main 
Dim oDoc As Object
Dim oCell As Object
oDoc = ThisComponent.Sheets(0)

oCell = oDoc.getCellByPosition(2,0)
oCell.String="SAM"
oCell.CharColor = RGB(0,0,255)
End Sub

文字列の連結 + または &

+でもできる時ありますが、文字列の連結には & 演算子を使用することをお勧めします

Sub ExampleMsgBox
    Const Text1 = "安倍首相"
    Const Text2 = "青山繁晴さん"
    Const title = "応援します"
    MsgBox(Text1 + Chr(13) + Text2,16,title)  
' -- 16 : ダイアログ上にストップ記号のアイコンを表示させます。
End Sub

Chr(13)は、改行です。

Snap_170130_153838

2 つの連結演算子の相違点

+ 演算子 (Visual Basic) の基本的な機能は、2 つの数値を加算することです。 しかし、数値オペランドを文字列オペランドに連結することもできます。 + 演算子は、一連の複雑な規則に従って、加算、連結、コンパイル エラーの発生、ランタイム InvalidCastException 例外のスローのどれを行うかを決定します。

& 演算子 (Visual Basic) は、String オペランドに対してだけ定義されており、Option Strict の設定にかかわらず、常にオペランドを String に拡大変換します。 文字列の連結には & 演算子を使用することをお勧めします。この演算子は文字列だけに定義されているので、意図しない変換が発生する可能性を減らすことができます。

「&」の前後には、半角空白が必要です。

Chr(10)  ラインフィード   略して、Lf
Chr(13)  キャリッジリターン 略して、Cr

コメント

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