2016-10-13 2 views
1

私はインターネットで見つけられるものから、私の仕事のために巨大なマクロを一緒にまとめることを切望しています。最終的にレポートをフォーマットすることが目的です。Excelマクロはイメージを配置しますが、他の人がブックを開いたときに表示されません。

コードのこの部分は、セルから値を受け取り、指定されたフォルダ内の名前のついたイメージファイルを見つけてから、イメージを特定のセルに「挿入」します。

問題は、他の人がこれらのレポートを表示する必要がありますが、ブックを送信するときにイメージが表示されないということです。私はこれをどのように修正するのか分かりませんし、それは大したことです。あなたは、他の従業員が画像を見ることができるようにこれを行う方法を見つけ出すのを助けてください!私の仕事はそれに依存するかもしれません!問題はどこから来る:(

Dim pictureNameColumn As String 
Dim picturePasteColumn As String 
Dim pictureName As String 
Dim lastPictureRow As Long 
Dim pictureRow As Long 
Dim pathForPicture As String 
pictureNameColumn = "A" 
picturePasteColumn = "B" 
pictureRow = 4 
lastPictureRow = Cells(Rows.Count, pictureNameColumn).End(xlUp).Row 
pathForPicture = "C:\Users\desid\reportimages\" 
Do While (pictureRow <= lastPictureRow) 
pictureName = Cells(pictureRow, "A") 
If (pictureName <> vbNullString) Then 
If (Dir(pathForPicture & pictureName & ".jpg") <> vbNullString) Then 
Cells(pictureRow, picturePasteColumn).Select 
ActiveSheet.Pictures.Insert(pathForPicture & pictureName & ".jpg").Select 
With Selection 
.Left = Cells(pictureRow, picturePasteColumn).Left + 30 
.Top = Cells(pictureRow, picturePasteColumn).Top + 3 
.ShapeRange.LockAspectRatio = msoTrue 
.ShapeRange.Height = 90# 
.ShapeRange.Width = 90# 
.ShapeRange.Rotation = 0# 
End With 
+0

「C:\ Users \ desid \ reportimages \ "」のパスにアクセスできますか?それは問題の根源になる可能性があります。また、あなたのコードが不完全に見える、いくつかの 'End If'と' Do While'の終わりを逃します – Oligg

+0

ああ!私はパスが問題ではないと思っていました。手動で画像を挿入するときには問題にならない方法です。私は、すべての写真を外部のソースにアップロードして、それをリンクさせることができると思いますが、何らかの理由でマクロを埋め込むことができると期待していました。 –

+0

私はあなたの問題を誤解しているかもしれません。このマクロ実行アクションがありますか?ファイルを保存して同僚に送信しますか?マクロを自分で実行する必要がある場合 – Oligg

答えて

0

ActiveSheet.Pictures.Insertで画像を挿入する代わりに、この方法で画像を埋め込むようにしてください。また、セルには文字が使用できないことに注意してください。また、問題の解決方法はありません。列名として「A」が1になるように列数が必要です。

Dim repPic as Shape 
Dim pictureNameColumn As Long 
Dim picturePasteColumn As Long 
Dim Lft as Single 
Dim Tp as Single 
Dim Wdth as Single 
Dim Hgth as Single 
pictureNameColumn = 1 
picturePasteColumn = 2 
Lft = Cells(pictureRow, picturePasteColumn).Left + 30 
Tp = Cells(pictureRow, picturePasteColumn).Top + 3 
Wdth = Cells(pictureRow, picturePasteColumn).Width 
Hgth = Cells(pictureRow, picturePasteColumn).Height 
Set repPic = Application.ActiveSheet.Shapes.AddPicture(pathForPicture & pictureName & ".jpg", False, True, Lft,Tp,Wdth,Hgth) 

これにより、画像をファイル自体に保存できます。この方法では、画像を挿入する瞬間に幅と高さを指定する必要があるため、wdthとhgthで画像のサイズをどのように調整するかを把握する必要があります。私の提案された解決策はコードにありますが、セットアップにはうまくいかないかもしれません。

ご希望の場合は、この回答に同意してください。がんばろう!

+0

これは私が必要としたものです!どうもありがとうございます!!! –

0

人々がマクロを実行する必要がある場合は、それは次のとおりです。filePathにはアクセスできない場合Falseを返します If (Dir(pathForPicture & pictureName & ".jpg") <> vbNullString)であなたの写真を入れて、パブリックフォルダを見つけてみ

+0

ありがとうございます!はい、私は問題がどこから来たのかを把握しました。私は埋め込みのいくつかの他の手段によって問題を解決する方法を期待していた –

関連する問題