御世話になります。
他の人のエクセル マクロで写真帳を見よう見まねで作成したのですが、現在複数シートに写真を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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
EXCELのVBAで画像を選んだ順に貼り付ける方法
Excel(エクセル)
-
任意フォルダから画像をすべてエクセルの指定マスに貼り付けをしたい
Visual Basic(VBA)
-
複数の画像ファイルを挿入したい
Excel(エクセル)
-
-
4
エクセルのVBAを使用し、工事写真台帳を作成しています。
Excel(エクセル)
-
5
Excel 画像貼り付けのVBAについて
Excel(エクセル)
-
6
VBAで選択した画像を貼り付けたい
Excel(エクセル)
-
7
マクロ 写真を複数挿入
Excel(エクセル)
-
8
エクセルVBAで縦向きの画像の挿入・回転
Excel(エクセル)
-
9
Excel VBAでセル内の画像を選択したい
Excel(エクセル)
-
10
画像を削除したい(VBA)
Word(ワード)
-
11
Excelに複数の写真を挿入する場合…
Excel(エクセル)
-
12
写真貼り付けを3列で折り返したい
Word(ワード)
-
13
エクセルマクロでシート内にある画像のみを選択する
Excel(エクセル)
-
14
【EXCEL VBA】ダブルクリックでセルのサイズに合わせて画像を挿入に機能を追加したいです。
Visual Basic(VBA)
-
15
エクセル フォルダの画像を画像名で検索して貼り付け
Excel(エクセル)
-
16
VBA シート毎に画像挿入
Visual Basic(VBA)
-
17
エクセルVBA 画像を貼り付けるセル位置を指定する方法
Excel(エクセル)
-
18
エクセルに張り付けた写真のファイル名が見たい
Microsoft ASP
-
19
エクセルのセルに指定画像(.jpg)を自動で貼り付けたいです。
Excel(エクセル)
-
20
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル マクロ写真帳に一括で...
-
エクセルファイルを値でのみし...
-
VBA Shapes コピーと名前
-
Excelでマクロ実行中に画面を固...
-
エクセルのマクロについて教え...
-
【Excel】マクロでページを追加...
-
エクセル連番自動印刷について
-
シート名を記入する
-
VBAで行コピーして挿入
-
エクセルVBAで納期管理システム...
-
セルに入力するたびにマクロを...
-
エクセルVBEモジュールにif the...
-
エクセルでマクロ登録の不具合解消
-
EXCEL VBA 他のアプリケーショ...
-
VBAで保存しないで閉じると空の...
-
Excel マクロの編集がグレーに...
-
WPSOffice_マクロの有効化について
-
エクセルの表を複数枚印刷した...
-
複数のマクロボタンをまとめて...
-
エクセルの、記録を終了したマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルファイルを値でのみし...
-
エクセルのマクロについて教え...
-
Excelでマクロ実行中に画面を固...
-
VBA Shapes コピーと名前
-
エクセル マクロ写真帳に一括で...
-
エクセル連番自動印刷について
-
エクセル 図形の寸法を取得したい
-
【Excel】マクロでページを追加...
-
セルに入力するたびにマクロを...
-
エクセルVBAで納期管理システム...
-
EXCEL VBA 他のアプリケーショ...
-
ブックの共有でVBAエラー
-
VBAで行コピーして挿入
-
EXCEL 行番号や列番号が選択で...
-
【ExcelVBA】マクロブックを通...
-
ExcelのVBAで自動採番したい...
-
シート名を記入する
-
エクセルファイルの回数期限の...
-
VB.NETによるEXCELの行挿入
-
再度,ExcelVBA,public変数が消える
おすすめ情報