フォルダに入っている写真を一覧表に

スポンサーリンク
この記事は約5分で読めます。

フォルダに入っている写真を、紙にきれいに並べて印刷したいときってありませんか?

ワードやエクセルでやろうと思うと、結構手間がかかるんですよね。

画像を挿入して、適当な大きさに縮小して。

いつの間にかファイル容量が大きくなってしまって、ディスク容量を食うし、起動や保存に時間がかかるなど、なんとかならないかなぁと思っている方は多いのでは?

今日は、そんな処理を一撃で片付けてしまうアクセスの使い方をご紹介します。

アルバムや工事写真台帳にも応用できるんじゃないでしょうか。

スポンサーリンク

レポートに画像を差し込んで作成します

使用される際は、そちらの環境で十分テストのうえ使用してください。

処理の流れはこんな感じです。

  1. アクセスが置いてあるフォルダ内の画像を検索します。
  2. 画像が見つかったら、その画像へのパスをテーブルに追加します。
  3. コメントを添えてレポートに画像を差し込み、印刷する。

では、早速作っていきましょう。

アクセスと同じフォルダ内に画像を置きます

アクセスを置くフォルダの中に、画像ファイルを一緒に入れておいてください。

今回の作例は、拡張子が「.jpg」であるJPEG画像を検索の対象にしています。

スポンサーリンク

テーブル作成

画像が見つかったら、画像へのパスを保存するテーブルを作ります。

テーブルの名前は、「フォルダ内の画像パス」としました。

フィールドの名前データ型
数値型(インデックス(重複あり))
ファイルパス短いテキスト(フィールドサイズ255)
ファイル名短いテキスト(フィールドサイズ255)
コメント短いテキスト(フィールドサイズ50)
スポンサーリンク

jpgファイルを検索するVBA

Sub ImagefileSearch()

Dim strTgtFld As String
Dim Fso As Object
Dim objFld As Object
Dim objFle As Object
Dim tmpFileNM As String

Dim db As DAO.Database
Dim strSQL As String

strTgtFld = Application.CurrentProject.Path

Set Fso = CreateObject("Scripting.FileSystemObject")
Set objFld = Fso.getfolder(strTgtFld)

Set db = CurrentDb

'フォルダ内の画像パスのレコードをすべて削除
strSQL = "delete * from フォルダ内の画像パス "
db.Execute strSQL

' 拡張子が「.jpg」であるファイルを検索する。
'見つかったら「フォルダ内の画像パス」テーブルに、その画像へのパスを追加する
For Each objFle In objFld.Files

    tmpFileNM = objFle.Path & "\" & objFle.Name
    
    If tmpFileNM Like "*.jpg" Then
        
        strSQL = "insert into フォルダ内の画像パス(順,ファイルパス,ファイル名) " & _
                "values(0,'" & objFle.Path & "','" & objFle.Name & "')"
        db.Execute strSQL
    End If
Next
End Sub

こちらのVBAコードを、標準モジュールに貼り付けてください。

標準モジュールを選択
コードの実行

貼り付けたら、実行ボタンを押し、実行してください。

スポンサーリンク

レポートに画像を差し込み

空白のレポートを選択

次に、レポートに画像を差し込んでまいります。

リボンから「作成」-「レポート」-「空白のレポート」を選択します。

レポートをデザインビューに切り替え

白紙のレポートが作成されたら、デザインビューにします。

レコードソースにフォルダ内の画像パスを設定

レコードソースに、「フォルダ内の画像パス」を指定します。

イメージコントロールを選択

レポートに、「イメージコントロール」を挿入します。

リボンから「レポートデザインツール」-「デザイン」から「イメージコントロール」を選択します。

画像ファイルを指定するダイアログボックスが出現しますが、キャンセルを押してください。

イメージコントロールのコントロールソースにファイルパスを設定

続いて、「イメージコントロール」の「コントロールソース」に「ファイルパス」を指定してください。

イメージコントロールの大きさは、表示したい大きさを指定していただければ結構ですが、今回は、A4縦の紙に3枚並べる感じで大きさを指定します。

そこで、イメージコントロールの大きさは、幅10.66cm、高さ8cmにしました。

縦横比はおよそ3:4になります。

レポートの詳細部分の高さを9cmに指定し、イメージコントロールの上下に0.5cmの余白を設けました。

テキストボックスのコントロールソースにファイル名を設定

つづいて、コメントを表示させるテキストボックスを配置します。

こちらも、テキストボックスの大きさは、後ほど好きなように変更していただければ結構です。

今回は、幅8cm、高さ6cmで作成しました。

その下には、幅8cm、高さ1cmでテキストボックスを配置しました。こちらのコントロールソースには「ファイル名」を表示するように設定しました。

では、レポートをプレビューしてみましょう。

レポートに画像を差し込んだところ

どうですか?イメージコントロールに画像が差し込まれましたか?画像のファイル名は表示されていますか?

スポンサーリンク

画像のコメントを入力する

レポートに画像とコメントとファイル名を差し込んだところ

「フォルダ内の画像パス」テーブルの「コメント」フィールドにコメントを入力してください。

レポートにコメントが表示されます。

今回の作例では、できるだけ簡単に作ることにしたので、画像をプレビューしながらコメントを入力するような機能は作っていません。

レポートを作成したのとほぼ同じ手順で入力フォームを作ることができますから、もしやってみたい方は、チャレンジしてみてください。

また、ファイルを検索する部分には、FileSystemObjectファイルシステムオブジェクトという仕組みを使っています。

ファイルに関する様々なプロパティを取得することができますので、工夫して使ってみてくださいね。

コメントをどうぞ!