GN125、グラディウス400のメンテナンス/カスタムブログです。実行するはじめに今回は、Talendでxlsmファイル(Excelのマクロ(vba)付きファイル)と連携する方法についてです。vbaはサポートされません...ですが、それでも既存資産にマクロ付きExcelがあり、そのマクロの仕様が複雑すぎて新たに作り直すのは無理...なんとしてもこのExcelと連携する必要があるんだ!という場面に出くわしましたので、今回まとめておきます。vbaと連携するTalendコンポーネントはない前述の通り、Excelに書かれたマクロ(vba)を実行するコンポーネントはありません。泥臭くはありますが、Talendにはコンソールを起動するコンポーネントがあるので、それを使った方法で戦います。ちなみに、この記事を書くにあたって、komlogさんの記事が大変参考になりました。ありがとうございます。実装するコマンドラインからでも、Excelの中のvba(で書かれた関数)は直接起動できないようです。vba起動用のvbsを作成し、それを経由して間接的にvbaを実行する戦略でいきます。vbaキック用vbsを作る以下をコピペして、exec_macro.vbsと名付けて保存しておきます。Function[/vb]内容は、コマンドラインから引数を3個受け取り、Excelファイルを実行する、というものです。パラメータに関しては後述します。必要に応じて実行する関数のラッパーを作っておく実行したいマクロ付きExcelが、複数の関数を実行する必要があったりする場合は、外から呼び出すためのラッパーを1つ作っておいた方が良いです。今回は、不要とは思えど一応ラップしておきました。Sub[/vb]ちなみに、今回ジョブに組み入れたいExcelは...めちゃめちゃ簡単なサンプルなんですが、「CSV出力」ボタンを押すとcsvを吐き出すよ、というものです...ファイル名はuser_tenpo_manager.xlsmとしてあります。Talendのジョブを組んでいくさて。今回のメインとなるコンポーネントは、tSystemです。これが、コマンド実行してくれるコンポーネントです。設定項目はありますが、とりあえず今回のケースではCommandパラメータに実行したいコマンドを文字列でセットするだけでOKです。ベタ下書きするのもアレなんで、contextにcmdTextとして外出ししておきます。っとジョブを組み立てます。連携テストが出来ればいいかな、という勢いです。「初期化」のtJavaでtSystemに実行してもらうコマンドを組み立て、tSystemでマクロ実行、このマクロはcsvを吐くものなので、動作確認として最後に出力ファイルを読み込んでログ出力する、というフローです。実行コマンドの組み立てさて、後はtSystemにキックしてもらうコマンドを組み立てればおしまいです。先程作成した、exec_macro.vbsをキックするコマンドを書きます。このvbsは、引数を3個とり、それぞれ実行したいExcelファイルパス、実行したい関数名、出力ファイルパスとなっています。user_info.csv[/text]ですので、上記のようなコマンドを実行すればokです。これではあまりに固定的すぎるので、それぞれのパラメータをcontextで外出ししておき、[初期化]tJavaで組み立てることにしました。[初期化]tJavaの中身はこんな感じです。context.cmdText);[/java]外出ししたcontextを繋げてるだけですね...はい。後は、tSystemのCommandパラメータに編集した文字列を与えれば完成です!実行する実行して、正しく動くかを確認します。先程外出ししたcontextには下記のように所定のパスを書いて...実行!Excelマクロが実行されたかどうかがとても分かりにくいですが、ちゃんと動いています。vbaがキックされcsvを吐き、そのcsvの中身がログ出力されています。今回は、本ブログ初のプログラム関係の話題です。今回のテーマはPhonegap/Cor[...]ブラウザだけで作るアイキャッチ画像。今回は、Webブラウザだけで完結できる、アイキャッチ画像の簡単な作り方をご紹介します。画像(imgタグ)だけでなく、広告も消すように修正しました。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。【Javascript】爆速でChrome拡張プラグイン開発を試す。作り方は意外とかんたんでした。【Talend】グローバル変数の使い方(globalMapとcontext)【JSF入門02】ボタン押下時のイベントを扱う。入門01】開発環境の構築。TalendをインストールしようETL開発ツールは比較するまでもなくTalend一択だと思う。入門02】CSVデータを変換する。Talendの使い方からはじめます。【エストレヤ】なんと妹がバイク乗りになるらしい。いうわけでバイクを購入しました。Songバイクでツーリングいこっ!心に残る絶景を写真にGN倶楽部IT系カテゴリの最新記事2019.03.06Wordpress,【WordPress】突然固定ページが404エラーで表示されなくなった!?ので私の対処法を書きます。WebSlides,【WebSlides】HTML+CSS+Javascriptでプレゼン資料を作成したら割とウケた話。React,【React】Reactに爆速で入門する4。React,【React】Reactに爆速で入門する3。React,【React】Reactに爆速で入門する2。WordPress.。