プロが教える店舗&オフィスのセキュリティ対策術

エクセル2003なら、写真をあるフォルダから貼り付けて、そのフォルダから、貼り付けた写真を削除または移動させてもエクセル2003は、再表示できたのに、エクセル2010では、できません。
エクセル2010での設定があるのか、教えてください。

A 回答 (2件)

手作業の図の挿入では発生しないのですが、


ActiveSheet.Pictures.Insert "C:\My Pictures\Picture.jpg"
など、Pictures.Insertメソッドを使ったマクロで挿入するとご質問の現象が発生します。
リンク挿入になります。2010のバグらしいです。
2010年5月くらいのmoug.netでちょっと話題になってました。(過去ログは消えてます)


なので、そういう状況でしたら、Pictures.Insertメソッドではなく
Shapes.AddPictureメソッドを使ってください。

Dim x As Variant
x = Application.GetOpenFilename("jpgFiles,*.jpg")
If VarType(x) = vbBoolean Then Exit Sub
With ActiveSheet.Shapes.AddPicture(Filename:=CStr(x), _
                  LinkToFile:=msoFalse, _
                  SaveWithDocument:=msoTrue, _
                  Left:=0, Top:=0, Width:=0, Height:=0)
  .ScaleWidth 1, msoTrue
  .ScaleHeight 1, msoTrue
End With


または、画像リサイズも兼ねてCopy&Paste、元画像を削除。でも良いです。

Dim x As Variant
x = Application.GetOpenFilename("jpgFiles,*.jpg")
If VarType(x) = vbBoolean Then Exit Sub
With ActiveSheet.Pictures.Insert(CStr(x))
  .Width = 100
  .Copy
  ActiveSheet.Pictures.Paste
  .Delete
End With
    • good
    • 2
この回答へのお礼

回答ありがとうございます。
大変参考になりました。

お礼日時:2011/02/18 15:49

Excelへの画像の貼り付けは、余計な画像情報をファイルに保存されないように、挿入コマンドを使います。

そうじゃないと、例えば*.jpgファイルをコピーしてはりつけたとしても、*.bmpに展開した時の情報などまで貼り付き、ファイルサイズは極大になってしまうことも少なくありません。

Excel2003でいえばAltを押下しながらI、P、F と連打した時に表示されるダイアログで画像を選択します。
Excel2010では「挿入」タブ→「図」と選択して貼り付けてください。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています