
数日前からマクロを勉強し始めた初心者です。
下の画像のような表を作っています。
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥
■Sheet1 …「商品在庫一覧」
■Sheet2 …「印刷用シート」※必要なものだけをSheet1から呼び出し、印刷用として同じシート上で並べ替える(図では‘行5’から下が印刷範囲です)
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥
Sheet2のD列(D1~D3‥)に商品画像のフルパスを呼び出し、「写真を配置」のボタンを押すと、印刷範囲の‘行7’のセルに自動で画像が配置されるようにしたいです(‘あ’のパスの画像を‘い’のセルに)。
画像を配置するような関数はなく、マクロでなければ実現できないということで、似ている条件の構文をアレンジして‥と思ったのですが、マクロのことをきちんと理解できていないためうまくいきません。
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥
■「D1」のパスから「A7」に画像を配置する構文を教えていただけますでしょうか。
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥
初歩的なことを聞いてすみません。
完成までの残り時間があまりないもので、質問させていただきました。
どなたかお暇がありましたら、お願いいたします。

No.1ベストアンサー
- 回答日時:
'読み込み
Sub try_1()
Const n As Long = 2 'margin
Dim r As Range 'Loop用
Dim tr As Range '読み込みセル用
Dim s As String 'セル文字列
Dim x As Double '縦横比固定での縮小率
Dim i As Long
With Sheets("sheet2")
'D1から下へ連続セルをLoop
For Each r In .Range("D1", .Range("D1").End(xlDown))
s = r.Value
'空白セルの場合Loopを抜ける
If Len(s) = 0 Then Exit For
i = i + 1
'フルパスが有効な時だけ処理する
If Len(Dir(s)) > 0 Then
Set tr = .Cells(7, i)
With .Pictures.Insert(s).ShapeRange
.LockAspectRatio = msoTrue
'セルの幅or高さに合わせて縮小率を得る
x = Application.Min((tr.Width - n) / .Width, (tr.Height - n) / .Height)
.Width = .Width * x
.Left = tr.Left + (tr.Width - .Width) / 2
.Top = tr.Top + (tr.Height - .Height) / 2
End With
End If
Next
End With
'念のためファイルを解放
Dir Application.Path
Set tr = Nothing
End Sub
'削除
Sub try_2()
Sheets("sheet2").Pictures.Delete
End Sub
...こんな感じです。
#ちょっとデジャヴゅな仕様...
>数日前からマクロを勉強し始めた初心者です。
勉強してコード内容を理解するようにしてください。
今後の仕様変更の対応など、コードのメンテナンスに苦労しますよ。
end-u様
ご回答ありがとうございました。お礼が遅くなり、申し訳ありません。
丁寧な解説までつけていただき、大変恐縮です。
おかげさまでなんとか完成させることができました!
と言ってもたまたまうまくいっただけで、おっしゃる通りちゃんと勉強しないと応用するのは無理だということがよく分かりました。
ちなみに…
「行6~9のセットを下方向に4段配置したかったのですが(質問に書き忘れました)、方法が分からなかったので、「For」~「Next」の部分を4回繰り返し(コピー&ペースト)、
下の構文の「■」のところをそれぞれずらす、という方法でやってみました。
For Each r In .Range("■", "■")
Set tr = .Cells(■, (i + 1) - ■)
本当はもっとちゃんとしたやり方があるのだと思います。。
私の間違った方法を書いても意味がないとは思ったのですが、初めてできてとても嬉しかったのでご報告させていただきました。
お正月休みにでもまとめて勉強したいと思います。
この度は助けていただき、ありがとうございました。
No.2
- 回答日時:
>数日前からマクロを勉強し始めた初心者です。
>完成までの残り時間があまりないもので、質問させていただきました。
残り時間が少ないのでしたら、今回の画像表示のサンプルコードを提示してもらっても、最終版として完成するには、時間が足らないように思います。
もしかすると、以下のようなことがしたいのではないでしょうか?
自動的に画像を切り替える
http://officetanaka.net/excel/function/tips/tips …
MackyNo1様
ご回答いただきありがとうございました。
お礼が遅くなり申し訳ありません。
ご紹介していただいたサイト、写真入りで大変分かりやすかったです。
ぜひ参考にさせていただきます。
この度はどうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】プリントスクリーンした画像をエクセルに貼付して印刷したい 6 2022/11/30 20:11
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Illustrator(イラストレーター) 会社の名刺作成時にロゴを配置する方法 3 2023/06/06 18:06
- Excel(エクセル) エクセルでキーリストからデータを取り出して1枚1枚印刷するには? 11 2022/06/27 09:52
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Illustrator(イラストレーター) 印刷プレビューに画像が表示されない 3 2022/09/06 14:34
- PDF 画像調整してスクショし保存した画像をPC画面と同画質で印刷する方法 1 2022/03/31 19:09
- その他(IT・Webサービス) 画像調整してスクショし保存した画像をPC画面と同画質で印刷する方法 3 2022/03/31 19:11
- プリンタ・スキャナー 封筒印刷 差出人印刷ずれる 4 2022/05/01 10:12
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
このQ&Aを見た人はこんなQ&Aも見ています
-
ショボ短歌会
ひどい短歌を詠んでください。
-
【お題】動物のキャッチフレーズ
【お題】「百獣の王 ライオン」「実は動物界最強 カバ」は分かるけど、それはちょっとピンと来ないなと思った動物のキャッチフレーズ
-
限定しりとり
文字数6文字以上の単語でしりとりしましょう
-
スタッフと宿泊客が全員斜め上を行くホテルのレビュー
スタッフも宿泊客も、一流を通り越して全員斜め上なホテルのレビューにありがちな内容を教えて下さい
-
あなたが好きな本屋さんを教えてください
どのくらいの規模間で、どのような本が並んでいるか、どのような雰囲気なのかなどなど...
-
エクセル マクロ 相対パスから画像を読み込みたいです。
その他(Microsoft Office)
-
Excelのパスが格納されている列の隣の列に画像を自動で表示させたい
その他(Microsoft Office)
-
VBAの内容の修正をお願いさせて頂きます
Excel(エクセル)
-
-
4
エクセル、画像ファイル名の書かれたセル(複数個所)に画像を一括で表示させる方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
エクセル 数字をすべて○などの...
-
クリックすると文章が表示され...
-
Excelで、図形内の文字をセルに...
-
Excel内での検索結果をシート...
-
エクセルマクロ 赤色の文字を検...
-
エクセルでセルをダブルクリッ...
-
Excel:セルの値(文字列)を数...
-
Excel2007 色のカウント (VBA)
-
シート保護とグループ化機能を...
-
EXCEL urlを一括で開きたい
-
VBA 見つからなかった時の処理
-
Excelでセルをクリックす...
-
太字に設定されているセルの個...
-
コピペして元のセルに戻るVBAに...
-
Excel ハイパーリンクのURLを別...
-
アポストロフィーの一括挿入 ...
-
空白セルを空セルに置き換える...
-
エクセルVBA
-
セルがクリックされた回数をカ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
Excel内での検索結果をシート...
-
エクセル 数字をすべて○などの...
-
クリックすると文章が表示され...
-
Excelで、図形内の文字をセルに...
-
太字に設定されているセルの個...
-
Excel ハイパーリンクのURLを別...
-
Excelでセルをクリックす...
-
現在のセルの位置を返す関数は...
-
Excel:セルの値(文字列)を数...
-
フォントの色を指定して削除出...
-
エクセルでPDFリンクを大量...
-
セルがクリックされた回数をカ...
-
エクセルでセルをダブルクリッ...
-
エクセル 未入力セルがあると...
-
【EXCEL】先週の月曜日の日付を...
-
アポストロフィーの一括挿入 ...
-
マクロを実行すると画像がズレ...
-
セルの内容をテキストボックス...
-
空白セルを空セルに置き換える...
おすすめ情報