LibreOffice (Calc) でExcel+VBAファイル開いてみる、動くか

スポンサーリンク

まずは、Excel のマクロ付きサンプルを探してみる

ここメールアドレス入れれば、サンプルファイルがメール添付で送られてきます。

怪しいサイトもWEB上にはあるので、自己責任でお願いします。

 エクセルマクロVBAサンプルプログラム・コード集!無料(フリー)ダウンロード可能 

「サンプル1|月末処理の自動処理する」のファイルをCalcで開く

ExcelをCalcで開く

ファイル自体は、問題なく開けました。

VBAどこにある

マクロ編集画面開く

ツールバー「ツール」>>「マクロ」>>「マクロ管理」>>「LibreOffice Basic」と選択クリックします。

VBAの場所

VBAProjectの中の「モジュール」>>「Module1」の中にあります。

VBA Code

先頭に、自動的に入力されています。

Option VBASupport 1      VBAを動かすためのおまじない

実行したら、エラー発生

やはり、おまじないは完璧ではないということです。

マクロ・エラー

データが入ってる行数、列数を取得しているようなので数えて数値入れました。動くには動きましたが計算結果が違います。

なぜだろ? バグ?

Excel:

Excel 結果

Calc結果:

Calc 結果

合ってる部分もある。わからないな

原因が大体わかりました、日付データが悪さしているようです。

エラー日付データ

(1)赤矢印のデータがおかしかったので入れ直しました。

‘—集計開始日と集計終了日を指定—
d1 = ws1.Range(“B2”).Value & “/” & ws1.Range(“C2”).Value & “/” & ws1.Range(“D2”).Value
d2 = ws1.Range(“B3”).Value & “/” & ws1.Range(“C3”).Value & “/” & ws1.Range(“D3”).Value

d1,d2が日付型ではないようなので、強制的に変換

‘—集計開始日と集計終了日を指定—
d1 = CDate(ws1.Range(“B2”).Value & “/” & ws1.Range(“C2”).Value & “/” & ws1.Range(“D2”).Value)
d2 = CDate(ws1.Range(“B3”).Value & “/” & ws1.Range(“C3”).Value & “/” & ws1.Range(“D3”).Value)

以上で、動くようになりました

 

コメント

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