人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Linux debianでcronなどを使い定期的にエクセル(.xls)内のVBAを実行したいのですが、どのような方法がありますか。

よろしくお願いします。

●質問者: future_100sec
●カテゴリ:コンピュータ
✍キーワード:debian Linux VBA xls エクセル
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● takerudayo
●25ポイント

前提条件として、私の知る限りLinux上でVBAが動作するアプリはありませんので・・・(OpenOfficeはVBA未対応)


Linuxのcronでタイミング起動し、

Windowsマシン上のExcelでVBAを稼動したい

と仮定して手法を書きます。


Linux上で別マシンの処理を動かす方法としてはrshがあります。

このrshサービスをWindows上で動かせば実現は可能です。


詳細なやり方が以下URLにあります。

Windowsに対してrshを行う手順

Windowsサーバに対してrshコマンドを実行したい場合、Windowsサーバに何かソフトウェアをインストールしなくてはいけないのでしょうか? ソフトウェアのインストールが必要.. - 人力検索はてな

◎質問者からの返答

ご回答ありがとうございます。

では数式入力済みのExcelシートがあります。

これに数値を代入させて計算結果を取り出すといったことは実現可能でしょうか。

よろしくお願いします。


2 ● ytakan
●25ポイント

OOoを使ってみては。

http://journal.mycom.co.jp/special/2008/ooo3/005.html

OOo 3.0からは、Excel VBAによるマクロを直接実行できるモードが追加される。

OOo 3.0のCalcでExcel VBAを実行するためには、まずOOoのオプションを変更しておく必要がある。オプション画面で[読み込みと保存]-[VBA属性]を選び、「Microsoft Excel 97/2000」欄の「実行可能コード」にチェックを入れる。

http://sourceforge.jp/magazine/06/11/22/0059225

まだライブラリーは完全ではないので、ExcelのVBAマクロがすべて実行できるわけではない。


3 ● takerudayo
●25ポイント

では数式入力済みのExcelシートがあります。

これに数値を代入させて計算結果を取り出すといったことは実現可能でしょうか。


Excelには引数や戻値というものがありません。(VBA内部にはありますがWorkbook_Openに対して無い)

よって情報の受け渡しをする方法を考えなければなりません。例えば以下のような案が考えられます。

案1.テキストファイル内にデータを書き、Win端末にファイル転送し、

VBA内でファイルオープンしてデータを受け取り、

結果をファイル出力して、Linux端末にファイル転送で戻す。

案2.どこかにDBサーバを起動し、DBサーバ経由でデータを受け渡す。

LinuxからDBへ読み書きするアプリを作る必要がある。

VBAからはODBCでアクセス可能。


先の回答でLinux上で動かないと書きましたが、

Excel上の計算式が簡単であればytakanさんが書かれている方法でできそうですね。

しかしこの場合もデータの受け渡しは上記のような案でしかできないと思います。


4 ● おりひか いくお
●25ポイント

Wineを使用されてはいかがでしょうか。

Wine: Windows (Win32) APをLinux上でネイティブ動作可能なオープンソースソフトウェア

http://www.atmarkit.co.jp/news/200806/18/wine.html

http://gihyo.jp/admin/column/01/emulator/2008/wine01

http://www.winehq.org/


5 ● hetena2
●5ポイント

winだったら、winのソフトをつかえ

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ