[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『画像位置追加』(またむら)
お世話になってます。
以前複数画像を一括貼付で質問させてもらい、 解決しました。 [[20140821172908]]
これに、また1つ画像を追加したいのですが、 どうしたら良いのかわからず悩んでます(苦笑)
今回は、過去ログの「写真1」「写真2」の上に もう一枚配置したいです。
範囲はB8〜AA16です。 前回と違い、大きい画像となります。 そして、同じように繰り返し貼り付けたい…。
画像名は「要図1」「要図2」・・・「要図n」と言うことにします。
是非皆様のお力をお貸しください…!
因みに下が現在のマクロ。 挿入するだけで済むならそれに越した事はないですよね…。
Sub 遠近貼付() Application.ScreenUpdating = False Dim i As Long, r As Long Dim Target As Range, hani As Range, c As Range Dim sh1 As Worksheet, ten As Worksheet Dim pFile As Variant Set sh1 = ThisWorkbook.Sheets("データ") 'データのあるシート Set ten = ThisWorkbook.Sheets("Sheet1") '写真を貼るシート With sh1 Set hani = .Range("A2:A" & .Range("A1").End(xlDown).Row) 'データのある箇所 r = 20 ten.Activate For Each c In hani For i = 1 To 2 pFile = ThisWorkbook.Path & "\" & c.Value & "_" & i & ".JPG" '写真のあるPathと写真名 If Dir(pFile) = "" Then Exit For '写真が無かったら If i = 1 Then Set Target = ten.Range("C" & r).Resize(8, 11) Call 画像貼付(Target, pFile) Else Set Target = ten.Range("P" & r).Resize(8, 11) Call 画像貼付(Target, pFile) End If Next i r = r + 26 Next c End With End Sub Sub 画像貼付(Target As Range, pFile As Variant) Dim rX As Double Dim rY As Double With ActiveSheet.Pictures.Insert(pFile) rX = (Target.Width - 2) / .Width rY = (Target.Height - 2) / .Height If rX > rY Then .Height = .Height * rY Else .Width = .Width * rX End If .Left = Target.Left + (Target.Width - .Width) / 2 + 0.5 .Top = Target.Top + (Target.Height - .Height) / 2 + 0.5 End With Set Target = Nothing Application.ScreenUpdating = True End Sub
< 使用 Excel:Excel2013、使用 OS:Windows7 >
r = 8 --途中省略-- For i = 1 To 3 pFile = ThisWorkbook.Path & "\" & c.Value & "_" & i & ".JPG" '写真のあるPathと写真名 If Dir(pFile) = "" Then Exit For '写真が無かったら If i = 1 Then Set Target = ten.Range("B" & r).Resize(??, ??) ElseIf i = 2 Then Set Target = ten.Range("C" & r + ??).Resize(8, 11) Else Set Target = ten.Range("P" & r + ??).Resize(8, 11) End If Call 画像貼付(Target, pFile) Next i r = r + ??
(マナ) 2014/10/15(水) 19:08
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.