ここから本文です

エクセルのVBA・マクロについて教えて下さい。工事写真をセル内に枠線付で挿入出来...

ta9********さん

2012/10/1610:07:16

エクセルのVBA・マクロについて教えて下さい。工事写真をセル内に枠線付で挿入出来るマクロを拾ってきて使用しているのですが、このマクロだとリンク挿入になっていて元の画像の場所を移動したり削除したりすると

消えてしまいます。
どうにか良い方法は無いでしょうか?
下記が現在のマクロになります。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
Dim myPic
Dim myRange As Range '画像を配置するセル範囲
Dim rX As Double, rY As Double
Const pnt As Long = 1


myPic = Application.GetOpenFilename("画像ファイル,*.jpg;*.jpeg;*.gif;*.tif")
If VarType(myPic) = vbBoolean Then Exit Sub

Set myRange = Target 'このセル範囲に収まるように画像を縮小する

Application.ScreenUpdating = False
With ActiveSheet.Pictures.Insert(myPic).ShapeRange
rX = myRange.Width / .Width
rY = myRange.Height / .Height
If rX > rY Then
.Height = .Height * rY
Else
.Width = .Width * rX
End If
.Left = .Left + (myRange.Width - .Width) / 2 '写真を横方向の中央に配置
.Top = .Top + (myRange.Height - .Height) / 2 '写真を縦方向に中央に配置
.Line.Weight = pnt
.Line.DashStyle = msoLineSolid


End With
Application.ScreenUpdating = True
Cancel = True
End Sub

どうぞ宜しくお願い致します。

補足keijiten様
ご回答ありがとうございます。
当方エクセル2010です。
何度やってもリンク切れになってしまいます><


お試しいただいたのは2010でしょうか?

閲覧数:
2,036
回答数:
1
お礼:
250枚

違反報告

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

ipl********さん

2012/10/1611:34:52

Excel2010特有の不具合(仕様?)の様です。
Microsoftのサポートに出ています。

[ Excel 2010 で Pictures.Insert メソッドを使用して図をワークシートに挿入すると図がリンク オブジェクトとして挿入される ]
http://support.microsoft.com/kb/2396509/ja

なので、

>With ActiveSheet.Pictures.Insert(myPic).ShapeRange



With ActiveSheet.Shapes.AddPicture(myPic, False, True, myRange.Left, myRange.Top, myRange.Width, myRange.Height)

に変更するとどうですか。

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

2012/10/16 21:19:28

降参 出来ました!ありがとうございました。

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

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

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

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

閉じる

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

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

閉じる