
御世話になります。
他の人のエクセル マクロで写真帳を見よう見まねで作成したのですが、現在複数シートに写真を1枚1枚張り付けてますが、最近になり写真を貼り付ける作業が増えており、作業効率を上げたいと考えました。つきましてはボタン一発で複数写真を各シートの指定された場所に写真を貼り付けることが出来たら・・・。と思っております。画像は実際に使用している写真帳の画面コピーです。1シートに3枚写真を貼り付ける仕様です。シートは基本15シートあります。必要によりシートの増減をしてます。
ちなみに今現在使用しているマクロは下記になります。
Sub 写真貼付1()
'
' 写真貼付2 Macro
'
' 写真貼り付け Macro
'
Dim StrFilter As String
Dim 画像ファイル As Variant
Dim Tate As Single
Dim Yoko As Single
Dim Top As Single
Dim Left As Single
Dim PicData As Object
Cells(13, 2).Select
Tate = ActiveCell.MergeArea.Height
Yoko = ActiveCell.MergeArea.Width
画像ファイル = ""
StrFilter = "画像ファイル(*.jpg;*.jpeg;*.gif;*.bmp;*.png),*.jpg;*.jpeg;*.gif;*.bmp;*.png"
画像ファイル = Application.GetOpenFilename(FileFilter:=StrFilter, _
FilterIndex:=1, _
Title:="画像ファイルを選択してください。", _
MultiSelect:=False)
If 画像ファイル = "False" Then Exit Sub
Top = ActiveCell.Top
Left = ActiveCell.Left
Set PicData = ActiveSheet.Shapes.AddPicture(画像ファイル, True, True, Left, Top, Yoko, Tate)
ActiveCell.Offset(, 1).Select
'
End Sub
上記のマクロを3個用意してそれぞれ各シートの1段目、2段目、3段目に写真を貼り付ける様にしてます。
当方マクロは初めたばかりです。何か良い知恵を御貸し頂けないでしょうか?
宜しくお願い致します。

A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんばんは
やり方は色々ありますが、すでに回答にあるような手順が最も簡単かと
済めされているコードを使用して少し具体的にすると
GetOpenFilenameを使われているのでMultiSelect:=Falseを
MultiSelect:=Trueとして複数選択できるようにします
この時、変数 画像ファイル は Dim 画像ファイル As Variant で宣言しているので、ファイルを選択した時は、配列になり
キャンセルを押した時は False (Boolean)が返ります。
なのでキャンセル時の対応は If 画像ファイル = "False" Then Exit Sub ではなく
If Not IsArray(画像ファイル) Then Exit Sub や
If 画像ファイル = False Then Exit Sub で回避します。
どちらでも多分大丈夫
配列内のデータ数(情報)でループして 各結合セルにAddPictureすれば良いと思いますので、、
例として 1つ目結合セルの左上セルがB3セルで12行飛びの場合
If 画像ファイル = False Then Exit Sub
n = 3 'スタート行
If UBound(画像ファイル) <= 3 Then '3つ迄が対象
For i = 1 To UBound(画像ファイル)
With ActiveSheet.Cells(n, "B").MergeArea
Tate = .Height
Yoko = .Width
Top = .Top
Left = .Left
ActiveSheet.Shapes.AddPicture 画像ファイル(i), True, True, Left, Top, Yoko, Tate
End With
n = n + 12 '次の結合セル行に
Next
End If
セルの移動と配列について少しの学習が必要
変数nは整数型で 行 なのでLong型が安心 iは整数型ならOK
画像ファイルの順番はGetOpenFilenameでフォルダー内の表示順になります
フォルダでの並び替えで変更は可能ですが、選択順ではありません。
No.1
- 回答日時:
こんにちは
>ボタン一発で複数写真を各シートの指定された場所に写真を貼り付けることが出来たら
検索してみればそのような事例も数多く見つかることと思います。
(質問者様のご要望にピッタリとは限りませんが、要領は分かると思います)
まとめて行う場合は、
・画像をフォルダなどにまとめて入れておく
(そのフォルダ内の画像を順に貼り付ける)
・貼り付け先のセル位置が決まっている
(ご提示の画像ではセル位置が不明です)
・画像の縦横比と、セル範囲の縦横比が違う場合の合わせ方
などを事前に決めておいて、それに従って順に処理するようなマクロにすれば良いでしょう。
基本的には、1枚分を貼り付ける処理をまず作成し、それを一般化して、あとは枚数分ループするようなイメージで作成可能と想像します。
以下、似た様な例をご参考までに。
(検索すれば、もっといろいろ見つかるはずです)
https://www.higashisalary.com/entry/vba-pictures …
https://tonari-it.com/excel-vba-shapes-addpictur …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルのVBAを使用し、工事写真台帳を作成しています。
Excel(エクセル)
-
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
任意フォルダから画像をすべてエクセルの指定マスに貼り付けをしたい
Visual Basic(VBA)
-
-
4
【VBA】 結合セルに複数画像とファイル名一括挿入する方法
Visual Basic(VBA)
-
5
VBAエクセルに貼り付けた画像をセルにあった大きさにしたい(等倍)
Excel(エクセル)
-
6
EXCELのVBAで画像を選んだ順に貼り付ける方法
Excel(エクセル)
-
7
【EXCEL VBA】ダブルクリックでセルのサイズに合わせて画像を挿入に機能を追加したいです。
Visual Basic(VBA)
-
8
エクセル(2013)VBA-図の縦横比を変えずにセルにおさまる最大限の大きさにする
Excel(エクセル)
-
9
VBAで「エクセルに写真を貼り付け、外のセルに撮影月日を『和暦』で自動記載」させたい
Excel(エクセル)
-
10
エクセルVBA 画像を貼り付けるセル位置を指定する方法
Excel(エクセル)
-
11
エクセルのセルに指定画像(.jpg)を自動で貼り付けたいです。
Excel(エクセル)
-
12
VBAで選択した画像を貼り付けたい
Excel(エクセル)
-
13
セルの文字を「印刷時だけ非表示」にしたいです。
Excel(エクセル)
-
14
VBAでエクセルのシート上の画像のリサイズと配置を行いたい
Excel(エクセル)
-
15
Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル連番自動印刷について
-
エクセル マクロ写真帳に一括で...
-
VBA Shapes コピーと名前
-
グラフ要素のセルを参照したい...
-
EXCEL VBA 他のアプリケーショ...
-
Excelでマクロ実行中に画面を固...
-
エクセル 図形の寸法を取得したい
-
セルに入力するたびにマクロを...
-
エクセルファイルを値でのみし...
-
再度,ExcelVBA,public変数が消える
-
ExcelのVBAコードについて教え...
-
WPSOffice_マクロの有効化について
-
【マクロ】元データと同じお客...
-
Excel マクロの編集がグレーに...
-
エクセル関数>参照ファイル名...
-
VBAで保存しないで閉じると空の...
-
【Excel VBA】マクロでExcel自...
-
エクセル ボタンに設定したマク...
-
複数のマクロボタンをまとめて...
-
エクセルでマクロ(Excel 4.0)...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA Shapes コピーと名前
-
エクセルファイルを値でのみし...
-
Excelでマクロ実行中に画面を固...
-
セルに入力するたびにマクロを...
-
エクセル連番自動印刷について
-
エクセル マクロ写真帳に一括で...
-
【Excel】マクロでページを追加...
-
エクセル 図形の寸法を取得したい
-
ブックの共有でVBAエラー
-
EXCEL VBA 他のアプリケーショ...
-
ExcelのVBAコードについて教え...
-
worksheet_changeの一時無効化
-
エクセルVBAで納期管理システム...
-
【ExcelVBA】マクロブックを通...
-
マクロを教えてください
-
VBA 選択したデータを別シー...
-
エクセル2013 bookのダブル起動
-
Excel2000 マクロの不具合?
-
エクセルファイルの回数期限の...
-
エクセル/マクロのエラー・・・・
おすすめ情報