数日前からマクロを勉強し始めた初心者です。
下の画像のような表を作っています。
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥
■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も見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
エクセル マクロ 相対パスから画像を読み込みたいです。
その他(Microsoft Office)
-
エクセル、画像ファイル名の書かれたセル(複数個所)に画像を一括で表示させる方法
Excel(エクセル)
-
Excelのパスが格納されている列の隣の列に画像を自動で表示させたい
その他(Microsoft Office)
-
-
4
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
5
EXCELで別シートのセル内に画像の貼り付けをしたいのですが・・・
Excel(エクセル)
-
6
マクロで画像挿入→エラー「リンクされたイメージを表
Excel(エクセル)
-
7
エクセルのセルに指定画像(.jpg)を自動で貼り付けたいです。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
エクセル 未入力セルがあると...
-
太字に設定されているセルの個...
-
Excelで、図形内の文字をセルに...
-
エクセル 数字をすべて○などの...
-
セルの内容をテキストボックス...
-
現在のセルの位置を返す関数は...
-
PHONETIC関数で、漢字のふり仮...
-
Excelでセルをクリックす...
-
クリックすると文章が表示され...
-
エクセルでの特定位置のセル内...
-
開始行と最終行を指定して差し...
-
データの平均とRangeの値をマク...
-
[EXCEL] フォント変更が正常に...
-
エクセルマクロ 赤色の文字を検...
-
シート保護とグループ化機能を...
-
[エクセル VBA]テキストファ...
-
エクセル シートを保護してる...
-
Excelでアンケートの集計をしたい
-
Excel:セルの値(文字列)を数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
エクセル 数字をすべて○などの...
-
Excel内での検索結果をシート...
-
太字に設定されているセルの個...
-
クリックすると文章が表示され...
-
Excelで挿入した図をセルの中央...
-
【マクロ】ファイル名の変更に...
-
Excelで、図形内の文字をセルに...
-
マクロを実行すると画像がズレ...
-
Excel ハイパーリンクのURLを別...
-
フォントの色を指定して削除出...
-
Excelでセルをクリックす...
-
Excel2007 色のカウント (VBA)
-
エクセルでの検索ボックスの作...
-
現在のセルの位置を返す関数は...
-
エクセル マクロ チェックボックス
-
VBA 見つからなかった時の処理
-
アポストロフィーの一括挿入 ...
-
エクセルでPDFリンクを大量...
-
セルの値が変ると自動でマクロ...
おすすめ情報