x.html
スナップショットをたくさん撮るので、写真整理を行う機会が多い。
毎回、ファイル名をリストに出して、写真のサムネイルを作って、リストからhtmlタグをEmEditorマクロで生成していたりする。
これをもう少し楽に出来ないか…と思ったのが、今回のネタ。
VBAで組んでみたのだけれど、かなり長くなったので封〜
必要な機能は…
- 写真名をリストアップできること。
- htmlファイルを作成できること。
- table で、コメントまでサポートできること。
以前、Excel でhtmlファイルを作るマクロを作ったことがあり、これを再利用しようと思った。
「環境設定」というシートを作って、写真のディレクトリやらなんやら、必要と思える項目を縦に書き出していく。
作った項目は…
※ 自分で使うだけなので、html のヘッダなどは、全て決めうち(^_^;
写真のリストを収集するシートを作って、出力するのに必要と思える項目を横に書き出していく。
- ファイル名
- コメント
Excelをデザインモードにして、コントロールツールボックスで実行ボタンを作成。
Visual Basic Editor で、モジュールにリストアップするだけのコードをつらつら…
とはいえ、プログラミングは本職でないので本のサンプルコードを引用しつつ、くみ上げていく。
Public Function photolist() ' 対象ディレクトリにある写真ファイルをリストアップする '' 環境変数の定義 --- Dim stEnv As Object Dim stDat As Object Set stEnv = Sheets("環境設定") Set stDat = Sheets("基礎データ") ' ディレクトリ関係 Dim wkDir As String Dim phDir As String Dim strPF As String '写真名 Dim lenPF As Integer '写真ファイルの文字数 Dim lenPFExt As Integer '拡張子の文字数 '' 環境変数の設定 --- ' ディレクトリ関係 ' 対象セルに、ディレクトリや拡張子などが記載されている wkDir = Dir(stEnv.Cells(4, 3) & "\*." & stEnv.Cells(7, 3)) phDir = stEnv.Cells(13, 3) & "/" lenPFExt = Len(stEnv.Cells(7, 3)) + 1 '拡張子数に、ドット分を +1 '' メインプロセス --- ListClear ii = 2 Do While wkDir <> "" ' stDat.Cells(ii, 1) = phDir & wkDir stDat.Cells(ii, 1) = wkDir ' ファイル名の文字数をカウント lenPF = Len(wkDir) ' 拡張子を除いたファイル名を、コメントのデフォルトに wkDir = Left(wkDir, lenPF - lenPFExt) stDat.Cells(ii, 2) = wkDir wkDir = Dir() ii = ii + 1 Loop End Function
こいつをボタンから呼び出して使うと、対象ディレクトリにある写真ファイル(特定拡張子)をリストアップしてくれる。
メイン機能ではないのに、コレを書くだけで疲れてたりする(^_^;
まぁ、ここまできたら、後は応用するコードだけなので楽。
画像ファイルだけを縦に並べる x.html を作成するExcelファイルを完成させた。
よくよく考えたら、ファイルをアップロードしたら関連ファイルをリスト表示し、コメントまで編集できるCGIでもあれば楽なんじゃ…
まぁ、それはまた別の機会でつくろう。
アップロードの方法(FTPソフトで一気にアップするか、いちいち一枚ずつアップするのか…)とか、アップするフォルダに統一性をもたせるのか…とか、コメントは別ファイルに記載しておくのか…とか、いろいろ考える要素が多すぎる。
すくなくとも、いままでより楽になったのは確かw