ここから本文です

マクロで貼り付けた画像について

kin********さん

2014/2/917:08:39

マクロで貼り付けた画像について

以下のようなマクロをネットで見つけて画像を一括貼り付けする処理エクセルを使っています。
ところが、貼り付け時(マクロ実行時)に指定した画像ファイルの場所を変更すると
(画像ファイルが格納されているフォルダ名の変更など)貼り付けたはずの画像が表示
されません。

『画像を貼り付け』ではなく『ファイルパスを記憶して表示』しているみたいな感じです。
画像ファイルの格納場所を変更しても、エクセルには影響が出ないようにできないでしょうか?
(エクセルのファイルサイズが大きくなっても構わないので、エクセルファイル『単体』で使えるようにしたいです)

説明が足りないところがあれば指摘してください。宜しくお願いします。

=====
Sub InsertPictures()
Dim i As Integer
Dim myDir As String
Const myHeight = 33 '行の高さ。0-409を指定。写真のサイズがこれで調整される。
Const myWidth = 3.75 '列の幅。0 - 255を指定。
Dim myFName As String

myDir = Application.GetOpenFilename(FileFilter:="すべての図(*.jpg),*.jpg")
If myDir = "False" Then Exit Sub
myDir = Left(myDir, Len(myDir) - Len(Dir(myDir)))

Application.ScreenUpdating = False
ActiveSheet.DrawingObjects.Delete
Columns(2).ClearContents
Rows.AutoFit

i = 1
myFName = Dir(myDir & "*.jpg")

Do While myFName <> ""
With Cells(i, 1)
.Activate
.RowHeight = myHeight
End With
With ActiveSheet
.Pictures.Insert myDir & myFName
With .Shapes(i)
.LockAspectRatio = msoTrue
.Height = myHeight
End With
End With
Cells(i, 2).Value = myFName
myFName = Dir
i = i + 1
Loop

Columns(1).ColumnWidth = myWidth
Columns(2).AutoFit
Application.ScreenUpdating = True
End Sub

閲覧数:
1,314
回答数:
2
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

blu********さん

2014/2/917:49:16

Excel2010では「Pictures.Insert」がリンク貼り付けになる事を、「Shapes.AddPicture」にする事で回避できます。

>.Pictures.Insert myDir & myFName



With .Shapes.AddPicture(myDir & myFName, False, True, Selection.Left, Selection.Top, 0, 0)
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
End With



に変更。

質問した人からのコメント

2014/2/10 11:45:03

具体的に回答をいただいたのでBAにします。
他の方もありがとうございました。

ベストアンサー以外の回答

1〜1件/1件中

xls********さん

2014/2/917:29:32

Insertメソッドを使用した場合リンク オブジェクトとして挿入されます。
回避策が下記ページで紹介されています。
<参考>
Excel 2010 で Pictures.Insert メソッドを使用して図をワークシートに挿入すると図がリンク オブジェクトとして挿入される
http://support.microsoft.com/kb/2396509/ja
画像ファイルを挿入する
http://www.moug.net/tech/exvba/0120020.html

挿入された画像をリンク切れで貼りなおす例
<参考>
エクセル2010でリンク貼り付けした画像を図として貼りなおすマクロを教えてくださ...
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1312057718...

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる