« 現在のカラーパレットをセルに表示して確認する | トップページ | VBAのコードをHTMLで表示できるようにする »

2011年4月23日 (土)

画像一覧のHTMLファイル作成

以前の記事でもHTMLファイル作成したことがあります。

その記事ではあるフォルダ内の
HTMLファイルの目次を作りました。
今回は、リンクをクリックすると
画像ファイルを見られるHTMLファイルを作成します。

画像ファイルの形式についてですが
いろいろな形式があります。
ここではjpeg形式のみです。
お好みで拡張子のところ(.Filename = "*.jpg")を
変更してください。

基本的なことは以前の記事と変わりないので
説明は省きます。

ただ拡張子のところ(.Filename = "*.jpg")を
変えただけではおもしろくないので、
HTMLをフレーム付にしました。
でもまあこれはVBAというよりはHTMLの問題ですかね。

ウィンドウを左右2つのフレームに分けて
左側に画像を、右側に画像のリンクの一覧を表示します。
右側に画像のリンクをクリックすると
左側に画像が表示されようにします。

このようにフレームを使うので
frame.htmlとmenu.htmlの2つのHTMLファイルを生成します。
生成したHTMLファイルはframe.htmlの方を開いてください。

あとの変更は、
ファイルの最終更新日時を追加したことです。
下のコードの

f.DateLastModified

のところです。
これがファイルの最終更新日時のプロパティです。
Format関数を使って表示形式を変更しています。

変数MyPathに画像があるフォルダを指定してください。
HTMLファイルは指定したフォルダ内に作成されます。

コードはこちら

画像一覧のHTMLファイル作成コード:

Sub macro110423a()
'指定したフォルダ内の
'画像ファイルの目次を作る

    Dim MyPath As String, MyFile As String
    Dim MyHTML As String
    Dim i As Integer
    Dim fs, f As Object
   
    MyHTML = "<HTML><HEAD><STYLE type='text/css'>" _
        & "SPAN.dlm{font-size:smaller} </STYLE></HEAD><BODY>"
   
    'フォルダを指定 する
    MyPath = "フォルダへのパス\"
   
    'ファ イルの有無を確認
    With Application.FileSearch
        .NewSearch
        .LookIn = MyPath
        '
        .Filename = "*.jpg"
        If .Execute() > 0 Then
            MsgBox .FoundFiles.Count & _
                " 個のファイルが見つかりました 。"
               
            Set fs = CreateObject("Scripting.FileSystemObject")
            For i = 1 To .FoundFiles.Count
                Set f = fs.GetFile(.FoundFiles(i))
                MyHTML = MyHTML & "<A target=" & Chr(34) & "main" _
                    & Chr(34) & " href =" & Chr(34) _
                    & Dir(.FoundFiles (i)) & Chr(34) & ">" _
                    & Dir(.FoundFiles(i)) & "</A> <SPAN class=dlm>" _
                    & "(" _
                    & Format(f.DateLastModified, "yyyy/mm/dd hh:ss") _
                    & ")" & "</SPAN><BR/>" & Chr(10)
            Next i
        Else
            MsgBox " 検索条件を満たすファイルはありません。"
        End If
    End With
    MyHTML = MyHTML & "</BODY></HTML>"
   
    'HTML形式のファイルを生成
    Dim a As Object
   
    Set a = fs.CreateTextFile(MyPath & "menu.html", True)
    a.WriteLine (MyHTML)
    a.Close
   
    'フレームのHTML生成
    MyHTML = "<HTML><FRAMESET cols='70%,30%'>" & _
        "<FRAME name='main' src='menu.html'>" & _
        "<FRAME name='menu' src='menu.html'>" & _
        "</FRAMESET></HTML>"
    Set a = fs.CreateTextFile(MyPath & "frame.html", True)
    a.WriteLine (MyHTML)
    a.Close

End Sub

なにかいいファイルの整理方法がないですかね~
またはそういうソフトウェアなど…

いろいろな保存形式で、使用するソフトも違うファイルを
1つのフォルダにいれて、
それでいてファイルの内容を
本をパラパラめくって見るような方法がほしいです。

そういった点では
いろいろな形式のファイルを表示できるブラウザは便利ですけど
まだまだ不自由です。

|

« 現在のカラーパレットをセルに表示して確認する | トップページ | VBAのコードをHTMLで表示できるようにする »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 画像一覧のHTMLファイル作成:

« 現在のカラーパレットをセルに表示して確認する | トップページ | VBAのコードをHTMLで表示できるようにする »