商品リストを作っています。
エクセルシートのA4,C4,E4,A8,C8,E8画像名が入っています。(たとえば18001,18002,・・・)
任意選択フォルダ内にある「18001、18002,・・・」の画像ファイルの貼り付け方を教えてください。
動作としては「マクロ起動→フォルダ任意選択→シート画像名の隣に画像を自動で貼り付け」を
行いたいのですがどうすればいいですか?
マクロはド初心者です。切り貼りくらいしか出来ません。
検索して下記の方法を見つけたのですが、画像フォルダが指定してあります。
下記の方法で任意フォルダ選択に変更したいのですがマクロをどのように
変更したら良いのか教えて下さい。
Sub macro1()
Dim p As String
Dim h As Range
'写真の保存場所
p = "C:\Users\☆☆☆\Documents\picpic\"
'現在表示されている写真は一度削除する
ActiveSheet.Pictures.Delete
'商品名が入力されている行まで繰り返す
For Each h In Range("A4,C4,E4,A8,C8,E8" & Range("Z4,Z8").End(xlShiftToRight))
'写真ファイルが保存されている時
If Dir(p & h) <> "" Then
With ActiveSheet.Pictures.Insert(p & h)
.Name = h
'写真ファイル名が入力されているセルから2つ左のセルに挿入
.Top = h.Offset(0, -2).Top
.Left = h.Offset(0, -2).Left
'写真サイズの設定
.Width = h.Offset(0, 1).Width
.Height = h.Offset(0, 1).Height
End With
End If
Next
End Sub
No.2ベストアンサー
- 回答日時:
以下のようにしてください。
とりあえず、画像名が記述されたセルの下に画像を表示しています。
最初に表示されるフォルダは、このマクロが格納されたexcelのフォルダです。
-----------------------------------------------
Sub macro1()
Dim p As String
Dim h As Range
Dim name As String
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ThisWorkbook.Path
If .Show = -1 Then
p = .SelectedItems(1) & "\"
Else
Exit Sub
End If
End With
'写真の保存場所
'p = "C:\Users\☆☆☆\Documents\picpic\"
'現在表示されている写真は一度削除する
ActiveSheet.Pictures.Delete
'商品名が入力されている行まで繰り返す
'For Each h In Range("A4,C4,E4,A8,C8,E8" & Range("Z4,Z8").End(xlShiftToRight)) 'これは期待した動作をしない
For Each h In Range("A4,C4,E4,A8,C8,E8,Z4,Z8")
'写真ファイルが保存されている時
name = h.Value & ".jpg"
If h.Value <> "" And Dir(p & name) <> "" Then
With ActiveSheet.Pictures.Insert(p & name)
.name = h.Value
'写真ファイル名が入力されているセルから2つ左のセルに挿入
.Top = h.Offset(1, 0).Top
.Left = h.Offset(1, 0).Left
'写真サイズの設定
.Width = h.Offset(0, 1).Width
.Height = h.Offset(0, 1).Height
End With
End If
Next
End Sub
No.1
- 回答日時:
補足要求です。
①あなたが提示されたマクロをみると、名前の書いてあるセルの2つ左の箇所に画像を配置するようになっています。
例えば、C4に18002が記述されていると、A4にその画像が配置されます。
そうすると、元々のA4の箇所に記述された画像名が壊れてしまします。(添付図参照)
C4に画像名があった時、あなたは、その画像をどこに配置されたいのでしょうか。
②画像名の拡張子は何でしょうか?
jpg、png、bmp等があります。
通常、ファイル名を指定する場合は、拡張子まで含めて指定するのですが、
もし、18002のように記述するなら、拡張子は例えばjpgのように決め打ちする必要があります。
③画像名を記述する箇所は、本当に
A4、C4、E4
A8、C8、E8
だけで良いのでしょうか。
今後、更に追加したいという要望が発生したとき、問題ないのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Excel(エクセル) Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて 2 2022/11/15 16:14
- Excel(エクセル) エクセルのマクロが上手く動きません 4 2022/07/14 13:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Pythonでgif画像が上手く作れない
-
【EXCEL VBA】ダブルクリックで...
-
Excel ユーザーフォームで表示...
-
【WPF】画像の切り替え
-
EXCEL VBA 複数のImageコントロ...
-
画像を二値化した後、黒の部分...
-
「using Windows」でエラーが出る
-
uwsc画像認識のあいまい判定に...
-
自作の地図をグーグルマップの...
-
Pythonのプログラム初心者の問題
-
vb.net 画像の透過について
-
UWSC 画像認識で条件分岐
-
VBAのユーザーフォームのイメー...
-
HTMLでサイトの模写をしていま...
-
DXライブラリの、マウスを使っ...
-
背景画像の繰り返しについて
-
C#のForm内に複数画像を繰り返...
-
OpenCV でのROIの指定方法について
-
jpgファイルの内容を比較したい...
-
動画像から平均画像を作成する方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
こんなことてしますか??
-
【EXCEL VBA】ダブルクリックで...
-
Excelで画像URLを1つずつセル...
-
EXCEL VBA 複数のImageコントロ...
-
HTMLで画像をポップアップで表...
-
背景画像の繰り返しについて
-
Excel ユーザーフォームで表示...
-
gif 画像上の ボタンに リン...
-
VBA シート毎に画像挿入
-
jQuery . プログラミング 助け...
-
VBAのユーザーフォームのイメー...
-
jqueryスライダーを2段でスライ...
-
ホームページバナーを(画像が...
-
「using Windows」でエラーが出る
-
スマホでサイトの画像を長押し→...
-
【WPF】画像の切り替え
-
PowerPoint VBA で画像の鮮明度...
-
画像のピクセルデータの取得
-
UWSCの色判定
-
UWSCを使った画像認証マク...
おすすめ情報
回答ありがとうございます。
補足いたします。
①下記のTop,Leftで表示位置を調整したいと考えております。
.Top = h.Offset(0, 0).Top
.Left = h.Offset(0, 1).Left
②画像拡張子
Jpgのみです。
③画像名を記述する場所
画像数8-20枚の貼り付けを考えており
追加の場合、下記に追加してしようすることを考えております。
For Each h In Range("A4,C4,E4,A8,C8,E8" & Range("Z4,Z8").End(xlShiftToRight))
現在①、③は数字変更追加をすることで対応を考えており、②は.jpgを画像名の後ろにつけ
画像を読み込んでおります(2018002.jpg)ので出来れば.jpgを入力せずに画像名のみでの
読み込み貼り付けたいです。