フォルダに入っている写真を、紙にきれいに並べて印刷したいときってありませんか?
ワードやエクセルでやろうと思うと、結構手間がかかるんですよね。
画像を挿入して、適当な大きさに縮小して。
いつの間にかファイル容量が大きくなってしまって、ディスク容量を食うし、起動や保存に時間がかかるなど、なんとかならないかなぁと思っている方は多いのでは?
今日は、そんな処理を一撃で片付けてしまうアクセスの使い方をご紹介します。
アルバムや工事写真台帳にも応用できるんじゃないでしょうか。
レポートに画像を差し込んで作成します
処理の流れはこんな感じです。
- アクセスが置いてあるフォルダ内の画像を検索します。
- 画像が見つかったら、その画像へのパスをテーブルに追加します。
- コメントを添えてレポートに画像を差し込み、印刷する。
では、早速作っていきましょう。
アクセスを置くフォルダの中に、画像ファイルを一緒に入れておいてください。
今回の作例は、拡張子が「.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という仕組みを使っています。
ファイルに関する様々なプロパティを取得することができますので、工夫して使ってみてくださいね。
コメントをどうぞ!