御世話になります。
他の人のエクセル マクロで写真帳を見よう見まねで作成したのですが、現在複数シートに写真を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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) EXCEL VBA シート比較し〇×判定 1 2021/11/19 11:49
- Visual Basic(VBA) 転記先VBA 一致しているセルがコピーされない 5 2021/11/15 17:23
- Visual Basic(VBA) EXCLE VBA シートクリックしたら該当シートコピー 1 2021/11/11 16:37
- Visual Basic(VBA) 空のシートに関数を入れたい 2 2021/12/03 15:08
- Visual Basic(VBA) シート名をフォルダ名に変更 1 2021/12/01 15:59
- Excel(エクセル) Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて 2 2022/11/15 16:14
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Visual Basic(VBA) シート名でファイル検索する 2 2021/11/30 17:05
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
任意フォルダから画像をすべてエクセルの指定マスに貼り付けをしたい
Visual Basic(VBA)
-
EXCELのVBAで画像を選んだ順に貼り付ける方法
Excel(エクセル)
-
複数の画像ファイルを挿入したい
Excel(エクセル)
-
-
4
エクセルのVBAを使用し、工事写真台帳を作成しています。
Excel(エクセル)
-
5
Excel 画像貼り付けのVBAについて
Excel(エクセル)
-
6
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
7
エクセル フォルダの画像を画像名で検索して貼り付け
Excel(エクセル)
-
8
マクロ 写真を複数挿入
Excel(エクセル)
-
9
VBAで選択した画像を貼り付けたい
Excel(エクセル)
-
10
エクセルVBA 画像を貼り付けるセル位置を指定する方法
Excel(エクセル)
-
11
エクセルVBAで縦向きの画像の挿入・回転
Excel(エクセル)
-
12
Excel VBAでセル内の画像を選択したい
Excel(エクセル)
-
13
【EXCEL VBA】ダブルクリックでセルのサイズに合わせて画像を挿入に機能を追加したいです。
Visual Basic(VBA)
-
14
エクセルのセルに指定画像(.jpg)を自動で貼り付けたいです。
Excel(エクセル)
-
15
Excelに複数の写真を挿入する場合…
Excel(エクセル)
-
16
EXCELで別シートのセル内に画像の貼り付けをしたいのですが・・・
Excel(エクセル)
-
17
Excelで数字を入れたら対応する図を呼び出したい
Excel(エクセル)
-
18
写真貼り付けを3列で折り返したい
Word(ワード)
-
19
エクセルマクロでシート内にある画像のみを選択する
Excel(エクセル)
-
20
エクセルに張り付けた写真のファイル名が見たい
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのマクロについて教え...
-
Excelでマクロ実行中に画面を固...
-
エクセル連番自動印刷について
-
エクセルファイルを値でのみし...
-
VBA Shapes コピーと名前
-
worksheet_changeの一時無効化
-
【ExcelVBA】マクロブックを通...
-
EXCEL VBA 他のアプリケーショ...
-
エクセル マクロ写真帳に一括で...
-
セルに入力するたびにマクロを...
-
ExcelのVBAコードについて教え...
-
エクセル メニューバーの中の...
-
excel 2010 範囲内 同じ文字 ...
-
VBAで行コピーして挿入
-
マクロで非表示シート内にある...
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
Excelのマクロでボタンを押すと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルファイルを値でのみし...
-
エクセルのマクロについて教え...
-
Excelでマクロ実行中に画面を固...
-
VBA Shapes コピーと名前
-
エクセル マクロ写真帳に一括で...
-
エクセル連番自動印刷について
-
エクセル 図形の寸法を取得したい
-
【Excel】マクロでページを追加...
-
セルに入力するたびにマクロを...
-
エクセルVBAで納期管理システム...
-
ブックの共有でVBAエラー
-
EXCEL VBA 他のアプリケーショ...
-
VBAで行コピーして挿入
-
EXCEL 行番号や列番号が選択で...
-
【ExcelVBA】マクロブックを通...
-
ExcelのVBAで自動採番したい...
-
エクセルファイルの回数期限の...
-
シート名を記入する
-
VB.NETによるEXCELの行挿入
-
エクセルのマクロを教えてください
おすすめ情報