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