2013/08/08(木) [n年前の日記]
#1 [prog] Excel VBA勉強中
某サイトの更新作業を、今のところ自分がエディタ+手打ちでやってるのだけど。できれば先方の方がサクッと作業できちゃうほうがいいのだろうなと思っていて。なので、もう結構長い間、時々思い出したように、CMS(コンテンツマネージメントシステム)だの、WYSIWYGタイプのHTMLエディタを探していたり。
しかし…。
しかし昨晩、突然閃いた。先方ではチラシすらExcelで作ってしまうぐらいに、日々、何でもかんでもExcelで作業している。だったら…。htmlの更新作業も、Excelでやってしまえばいいんじゃないか? それなら、操作方法を忘れてしまう、なんてことはないだろう。
幸い、更新すべき部分は大体決まってる。
というわけで、Excel VBA を勉強中。
上手く行きそうだなと思ったけど、甘かった。ファイルを保存し直して、Excelを再起動してまた読んだら、「マクロが入ってるぞ。怪しいファイルだぞ。マクロは有効にできないぞ」と言われてしまって。こんな状態になるのでは、相手先に使ってもらうわけにはいかないな…。いい考えだと思ったんだけどな…。
しかし、Excel で元データを打ってもらって、何かしらのツールでhtmlに変換する、という方向性はイケそうな気がする。Rubyで .xls を読んで html に変換するツールを書いてみるか…。
しかし…。
- CMS ... 利用しているサーバが、CGIを動かせないサーバなので、設置ができない。ローカルで動かして静的htmlを出力できるCMSならどうにかなりそうだけど、該当機能を持ってて、かつ、イイ感じのCMSがさっぱり見つからず。
- HTMLエディタ ... サイトの更新頻度がそれほど高くないので、自分はともかく、先方では使い方を忘れそうな予感。よほど簡単な操作じゃないと、オススメできそうにない。また、有償製品については、実際使えるかどうか分からない状態で購入をオススメするのも難しく。
しかし昨晩、突然閃いた。先方ではチラシすらExcelで作ってしまうぐらいに、日々、何でもかんでもExcelで作業している。だったら…。htmlの更新作業も、Excelでやってしまえばいいんじゃないか? それなら、操作方法を忘れてしまう、なんてことはないだろう。
幸い、更新すべき部分は大体決まってる。
- pdfを用意して、所定のフォルダに放り込んで、
- 商品名(?)や期間を書きながら、pdfにリンクを張って、
- FTPでアップロードするだけ。
- 記事一つに対して入力すべき項目は、商品名、期間、リンクを張るpdfファイル名、ぐらいだから、セルに書いとけば済むだろう。
- テンプレートhtmlを読み込んで、所定の部分に、Excelのセルを読み取って作り上げた、html文字列を埋め込んで出力すればいい。
- FTPは、FFFTPあたりを使って、ミラーリングをすれば済みそう。バッチファイルを用意するのでもいいし、Excelから呼び出せるならそれでもかまわない。
というわけで、Excel VBA を勉強中。
- Excel 2003 を起動して、ツール → マクロ → Visual Basic Editor を選択。
- 挿入 → 標準モジュールを選択すると、標準モジュールが追加されて、ウインドウが開く。
Sub DumpTest() ' セルの内容をポップアップ表示 Dim i As Integer Dim j As Integer Dim s As String i = 2 s = Cells(i, 1).Value Do Until s = "" For j = 2 To 3 s = s & "," & Cells(i, j).Value Next j MsgBox s i = i + 1 s = Cells(i, 1).Value Loop End Subとりあえず、Cells(1,1).Value でセル内容が読み取れることは分かった。
上手く行きそうだなと思ったけど、甘かった。ファイルを保存し直して、Excelを再起動してまた読んだら、「マクロが入ってるぞ。怪しいファイルだぞ。マクロは有効にできないぞ」と言われてしまって。こんな状態になるのでは、相手先に使ってもらうわけにはいかないな…。いい考えだと思ったんだけどな…。
しかし、Excel で元データを打ってもらって、何かしらのツールでhtmlに変換する、という方向性はイケそうな気がする。Rubyで .xls を読んで html に変換するツールを書いてみるか…。
[ ツッコむ ]
以上です。