※リンク貼付けと埋め込み貼付けの2種類を掲載しました(2019/07/11)
写真票作成(写真帳)マクロ A4縦に写真8枚貼り付けるマクロをご紹介します。
これで自動でアルバム作成ができます。
※ その他の様式一覧はこちら
操作画面
写真票(写真帳)の様式はこんな感じです。
※行列の幅、枠線、題名はエクセルシート上で修正できます。
手順
①写真データを1つのフォルダに保存する
※ファイルの並び順に写真が配置されます。
順番を変えたい場合は名前を変更してください。
②G1セルに写真データのフォルダのパスを記入する
③【ファイル取得】ボタンを押す
B列に設定フォルダのファイル名が記入されます(ここで画像データ以外がないか確認)
④写真票に記入したい項目があれば入力する。
2行目まで入力可能!!なければ空欄で。
⑤【写真票作成】ボタンを押す
写真データ保存先に写真票フォルダが作成され、その中にファイルが保存されます。
こういった感じで写真を貼り付けたシートが自動でできます。
↓ダウンロードはこちらをクリック(詳しい手順、注意事項はファイルの中に記載)
【埋め込み貼付け】
【リンク貼付け】
お世話になります。
Excelのマクロに興味をもち、様々なサイト等で独学になりますが、学ばせていただいています。
本サイトには、たくさんのマクロがありとても参考にさせていただいています。
1点質問させてください。
写真の位置づけやサイズ等の変更は少しずつ理解できたのですが、写真の画像を縦に1列や2列だけでなく、
3列、4列…と増やす場合には、どのように入力するとよいのでしょうか。
お手数をおかけしますが、教えていただけると幸いです。
よろしくお願いします。
お世話になっております。
ご連絡ありがとうございます。
こちらのマクロはk,j,iの変数で貼り付け位置を調整しています。
例えば以下の分で偶数か奇数かを判断して
写真の挿入時に貼り付け位置を1列目か2列目か設定しています。
If k Mod 2 = 1 Then
j = 0
Else
j = 2
End If
3列にする場合
If k Mod 3 = 1 Then
j = 0
ElseIf k Mod 3 = 2 Then
j = 2
Else
j = 4
End If
に変更し、写真様式にE列に写真が挿入されますのでレイアウト等は調整して下さい。
4列にする場合
If k Mod 4 = 1 Then
j = 0
ElseIf k Mod 4 = 2 Then
j = 2
ElseIf k Mod 4 = 3 Then
j = 4
Else
j = 6
End If
に変更し、写真様式にE,G列に写真が挿入されますのでレイアウト等は調整して下さい。
写真の枚数に合わせて以下も変更ください。
If k Mod 8 = 1 Then
もし必要であれば必要なレイアウトのものを作成いたしますのでご連絡下さい。
突然のコメント失礼します。
いつも参考にさせてもらっております。ありがとうございます。
3列にする場合と4列にする場合、のマクロに変更してみたのですが3列目と4列目が一段ずれて張り付けられてしまいます。どのように対応すれば良いかご教示ください。よろしくお願いいたします。
ご連絡ありがとうございます。
マクロをどのように修正したかを教えていただければ原因がわかるかと思いますが
マクロをどのように修正したか教えていただくことは可能でしょうか?
はじめまして、仕事で使用させて頂いてます。
添付した画像ですが、デフォルトだと左よりなのですが、初めから中央揃えにする事は可能でしょうか?
また、添付する写真のサイズも任意であらかじめ設定することが出来るならその方法も教えていただきたいです
セルの中に文字が入っていない場所には写真を貼り付けないようにしたいのですが、どうすればいいのでしょうか。
返信が遅くなり申し訳ありません。
「セルの中に文字が入っていない場所」とは具体的にどちらになりますか?
例えばですが、
B2のセルに文字がある場合、B6に写真を挿入
B2のセルに文字がない場合、D6に写真を挿入
B2のセルに文字がなく、D3にも文字がない場合、B23に写真を挿入 みたいなかんじです。
返信が遅くなりまして申し訳ありません。
写真挿入の前と項目入力の後に
以下のように赤い太字の部分を追加してください。
そうすれば空白の行は写真の挿入、項目追加もされず、次の行の作業に移ります。
If Cells(k + 1, 2) = “” Then
GoTo Label1
End If
‘写真挿入
PicPath = Path & “\” & Cells(k + 1, 2)
xlSheet.Cells(6 + 17 * i, 2 + j).Select
xlSheet.Pictures.Insert(PicPath).Name = “Pic” & k
xlSheet.Shapes(“Pic” & k).Copy
xlSheet.Shapes(“Pic” & k).Delete
xlSheet.Paste
‘サイズ変更
xlSheet.Pictures.ShapeRange.LockAspectRatio = msoTrue
xlSheet.Shapes(“Pic” & k).Height = 250
‘項目入力
xlSheet.Cells(3 + 17 * i, 2 + j) = Cells(k + 1, 3)
xlSheet.Cells(4 + 17 * i, 2 + j) = Cells(k + 1, 4)
xlSheet.Cells(1, 1).Select
Label1: