Gizport
1 回答
0
Share (facebook)
195
view
全般

エクセル2002にてマクロを使い画像と画像のファイル名(.jpgを消...

エクセル2002にてマクロを使い画像と画像のファイル名(.jpgを消した)を指定したセルに表示する方法を教えてください。 chirinuruwowahe様のVBAを利用させていただきまして少し加工したのですが、私の頭ではファイル名を入れる事が出来ませんでした。
どなたか、わかるお方お手数ですが教えてください。
e.ad.bcに画像を入れj.ai.bcの15.32.49.66に名前を入れたい次第です。

↓上の部分は文字数の関係で取りました。必要の場合は教えてください。


Sub 画像貼り付け()
'===============フォルダ選択
'===============画像の掃除

元シト = ActiveSheet.Name
セル = Array("e3", "Ad3", "bc3", "e21", "ad21", "bc21", "e37", "Ad37", "bc37", "e54", "Ad54", "bc54")
i = 12
Set myFS = CreateObject("Scripting.FileSystemObject")
For Each myF In myFS.GetFolder(フォルダ).Files
myEXT = LCase(myFS.GetExtensionName(myF))
If myEXT = "jpeg" _
Or myEXT = "jpg" _
Or myEXT = "gif" _
Or myEXT = "tiff" _
Or myEXT = "bmp" _
Or myEXT = "png" _
Or myEXT = "tif" Then
If i > 11 Then
i = 0
Sheets(元シト).Copy after:=Sheets(Sheets.Count)
End If
'===============画像の貼り付け
Set mySP = ActiveSheet.Pictures.Insert(myF)
myMA = Range(セル(i)).MergeArea.Address
'===============タテヨコの縮尺を保持
myHH = Range(myMA).Height / mySP.Height
myWW = Range(myMA).Width / mySP.Width
If myHH > myWW Then
mySP.Height = mySP.Height * myWW
mySP.Width = Range(myMA).Width
Else
mySP.Height = Range(myMA).Height
mySP.Width = mySP.Width * myHH
End If

'===============中央へ調整
myHH2 = (Range(myMA).Height / 2) - (mySP.Height / 2)
myWW2 = (Range(myMA).Width / 2) - (mySP.Width / 2)
mySP.Top = Range(myMA).Top + myHH2
mySP.Left = Range(myMA).Left + myWW2

Set mySP = Nothing
i = i + 1
End If
Next
Set myFS = Nothing

End Sub


以上ご指導よろしくお願いいたします
Yahoo!知恵袋 5077日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
Excelに大量の画像を取込むような処理はあまりお勧めしませんが、、、

> j.ai.bcの15.32.49.66

bc → bh
32 → 33
の間違いならばという前提ですが、下記を加えたらどうでしょう?

'===============画像の貼り付け
Set mySP = ActiveSheet.Pictures.Insert(myF)
Range(セル(i)).Offset(12, 5).Value = myFs.GetBaseName(myF) '←ここに1行追加
myMA = Range(セル(i)).MergeArea.Address
'===============タテヨコの縮尺を保持
Yahoo!知恵袋 5076日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
42
Views
質問者が納得Excelに大量の画像を取込むような処理はあまりお勧めしませんが、、、 > j.ai.bcの15.32.49.66 bc → bh 32 → 33 の間違いならばという前提ですが、下記を加えたらどうでしょう? '===============画像の貼り付け Set mySP = ActiveSheet.Pictures.Insert(myF) Range(セル(i)).Offset(12, 5).Value = myFs.GetBaseName(myF) '←ここに1行追加 myMA =...
5077日前view42