■プログラム実行環境
OS:Windows 10 Home (x64)
LibreOffice:バージョン: 6.2.7.1 (x64)
JAVA:バージョン: 8.0.2210.11 (64-bit)
※LibreOfficeとJAVAはエラー回避のため
最新or安定動作バージョンをインストール。
※LibreOfficeとJAVAはエラー回避のため
最新or安定動作バージョンをインストール。
■対象者
エクセル代替で無料のLibreOfficeを使いVBAマクロを実行したい人。
■Java実行環境準備
Java実行環境(JRE)がない状態でマクロを実行しようとすると上記エラーが発生するので最新のJREをインストールする。
全オペレーティング・システム用のJavaのダウンロード
上記リンクページで自分のPC環境にあったJAVAを
ダウンロード⇒インストールする。
私の場合「Windows オフライン(64ビット)」。
■JAVAをPCに認識させるため環境変数設定する
Windowsキー+「i」キー同時押しで「Windowsの設定」を出す。検索窓「システム環境変数の編集」入力選択。
「詳細設定」タブ⇒「環境変数(N)…」選択。
「〇〇のユーザー環境変数(U)」の「新規(N)…」選択。
「変数名」に「JAVA_HOME」
「変数値」はJavaをインストールしたフォルダパスを入力。
私の場合「C:\Program Files\Java\jre1.8.0_221」
人により違う場合あり。
OK選択。
「〇〇のユーザー環境変数(U)」の「Path」を選択
⇒「編集(E)…」選択。
⇒OKをおして環境変数設定終了。
■LibreOfficeをインストールor更新
Download LibreOffice上記リンクより「LibreOffice:バージョン: 6.2.7.1 (x64)」
ダウンロード⇒標準インストール。
安定動作のためバージョン6.3.2選択せず。
古いバージョンのLibreOfficeも同様に標準インストールで更新可能。
■LibreOfficeでエクセルVBAマクロを実行する
上記JavaとLibreOfficeの準備完了したら設定反映のためPC再起動する。
LibreOffice⇒「Calc 表計算ドキュメント」を選択。
「ツール」⇒「オプション」選択。
「セキュリティ」⇒「マクロセキュリティ」
⇒「中」を選択⇒OK。
「詳細」⇒表示されているJavaを選択(先頭列〇を選ぶ)⇒OK。
「ツール」⇒「マクロ」⇒「マクロの管理」⇒「LibreOffice Basic」
「無題1」選択⇒「New」選択。
OK。
LibreOffice Basicがひらくので下記プログラムを記入する。
REM ***** BASIC ***** Option VBASupport 1 '■■追記■■' Sub Main Cells(1, 1) = "Hello World" '■■追記■■' End Sub
2行目「Option VBASupport 1」はLibreOffice Calcで
エクセルVBAプログラム実行に必要な記述。
5行目「Cells(1, 1) = "Hello World"」は
セルにHello Worldの文字を入力指示する記述。
ファイル名LibreOffice形式「無題1.ods」で保存して閉じる。
※エクセル形式「無題1.xlsx」だとModule名やコードの日本語が
「??」に文字化けする可能性あり。
保存したマクロ入りファイルを開くとセキュリティ警告がでるので、
「マクロの有効化」を選択。
「ツール」⇒「マクロ」⇒「マクロを実行」選択。
「ライブラリ」からマクロを格納している「Module1」を選択。
「マクロ名」の「Main」を選択して「実行」をおす。
「Cells(1, 1)」、シートの1行目A列に「Hello World」が入力される。
■あとがき
【LibreOffice calcでエクセルVBA動かす場合プログラム冒頭に「Option VBASupport 1」記述必要】
などソフト差異による手間発生するので
会社でエクセル使っている人は
有料でも同じバージョンのエクセル購入して使った方が
手間回避できて楽と思う。
私の場合、使い慣れたエクセルの方がいいけど
さわる機会ないし
今はほとんど事務作業やってないので
無料のLibreOffice calcで十分と判断している。
プログラムはまず目的、例えば
「事務作業を時短して、定時で帰りたい」
があって、それに適した、つまり最短で楽に実現できる
プログラミング言語を選択する。
上記「Hello World」のような簡単なモノから実際につくる。
そして「アレがしたい」「コレがしたい」というのを
ググって調べて、プログラム追記していく。
ソフトや周辺環境、使用方法も含め、よりよい形に強化する。
ソフトや周辺環境、使用方法も含め、よりよい形に強化する。
実現したいモノがあるから学ぶのであって、
学ぶこと自体は目的ではない。それは効率が悪い趣味。
だから、実現したいモノやコトを明確にイメージするのは大事ってこと。
以上。