マクロを使って、フォルダ内の画像をエクセルに自動的に貼り付けできるようになりました。
http://oshiete.goo.ne.jp/qa/8357181.html
(picopico_7さんありがとうございました。)
しかし、出来上がったファイルをメールで他の人に送ると、その人のところではエラーがでて画像が見られません。「リンクされたイメージを表示できません」となります。
ネットで調べたところ、excel2010はリンクをつかって画像を表示するから?ということがわかりました。が、対処方法がわかりません。
どなたか教えて頂けませんでしょうか。
よろしくお願いいたします。
windows7
excel2010
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
#2です。
#3さんご指摘の通り、Shapes.AddPictureと、Pictures.Insertでは幅の挙動が異なりますね。
サイズとプロパティで確認すると、Pictures.Insertの方は縦横比の固定にチェックが入っています。
また、h.Offset(0, 1).Widthへの合致という点ではShapes.AddPictureの方が合っています。
With ActiveSheet.Pictures.Insert(OpenFileName)
.Name = h
.ShapeRange.LockAspectRatio = False
(以下略)
と、明示的に縦横比固定を外してやると、双方の挙動は同じになりました。
少なくともxl2010では、.Pictures.Insertはデフォルトでは縦横比固定になる様です。逆に言うと、元のままでは
'写真サイズの設定
.Width = h.Offset(0, 1).Width
.Height = h.Offset(0, 1).Height
は、後から行った方しか有効で無いという事でしょう。
ご参考まで。
No.3
- 回答日時:
こんにちは。
画像の表示までは上手くいかれたみたいで良かったです。
#1,2のmitarashiさんが書かれている通りAddpictureを使われると効率的かと思い私の方でも試してみました。
が、写真サイズの設定だけがなぜだか上手くいきませんでした(私の知識不足です)。
なので今使われているプログラムに入れた状態で記しておきます。
コピペして写真の保存場所を直してから動かしてみてください。
(ちなみに追加した部分は「'リンク貼付画像を切り取る」「'写真ファイル名が入力されているセルから2つ左のセルを選択」「'画像をExcelシート自体に貼付」のみです)
Sub macro1()
Dim p As String
Dim h As Range
'写真の保存場所
p = "C:\Users\☆☆☆\Documents\picpic\"
'現在表示されている写真は一度削除
ActiveSheet.Pictures.Delete
'商品名が入力されている行まで繰り返す
For Each h In Range("D2:D" & Range("C1048576").End(xlUp).Row)
'写真ファイルが保存されている時
If Dir(p & h) <> "" Then
With ActiveSheet.Pictures.Insert(p & h)
'写真ファイル名が入力されているセルから2つ左のセルに挿入
.Top = h.Offset(0, -2).Top
.Left = h.Offset(0, -2).Left
'写真サイズの設定
.Width = h.Offset(0, 1).Width
.Height = h.Offset(0, 1).Height
'リンク貼付画像を切り取る
.Cut
End With
'写真ファイル名が入力されているセルから2つ左のセルを選択
h.Offset(0, -2).Activate
'画像をExcelシート自体に貼付
ActiveSheet.PasteSpecial Format:="図 (JPEG)", Link:=False, DisplayAsIcon:=False
End If
Next
End Sub
No.2
- 回答日時:
#1です。
ご提示のコードに組み込むのは検証が面倒なので、下記コードでテストしました。ここからの載せ替えはご自分でお願いします。
Sub test()
Dim OpenFileName As String
Dim h As Range
'試験用に適当に指定
Set h = ActiveSheet.Range("D5")
OpenFileName = Application.GetOpenFilename("すべてのファイル,*.*")
If OpenFileName = "False" Then Exit Sub
'AddPictureを使用する時
'LinkToFile:=Falseだけでは不十分で、 SaveWithDocument:=Trueも必要な様です
ActiveSheet.Shapes.AddPicture(Filename:=OpenFileName, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=h.Offset(0, -2).Left, _
Top:=h.Offset(0, -2).Top, _
Width:=h.Offset(0, 1).Width, _
Height:=h.Offset(0, 1).Height).Select
Selection.Name = h.Value
'既存のPictures.Insertを生かして、クリップボード経由でJPEG形式で貼り付ける時
' With ActiveSheet.Pictures.Insert(OpenFileName)
' .Name = h
' '写真ファイル名が入力されているセルから2つ左のセルに挿入
' .Top = h.Offset(0, -2).Top
' .Left = h.Offset(0, -2).Left
' '写真サイズの設定
' .Width = h.Offset(0, 1).Width
' .Height = h.Offset(0, 1).Height
' .Cut
' End With
' h.Offset(0, -2).Activate
' ActiveSheet.PasteSpecial Format:="図 (JPEG)", Link:=False, DisplayAsIcon:=False
End Sub
No.1
- 回答日時:
下記が詳しいです。
http://www.moug.net/tech/exvba/0120020.html
>Pictures.Insertメソッドを使った方法では、画像のリンク情報だけを保存する、または画像と一緒に保存するといった指定はできません。
>さらに、Excel 2007までは画像情報と一緒に保存されていたのに対し、Excel 2010でリンク貼り付けに仕様が変わるなど、Excelのバージョンによって画像の保存方法が異なります。
という訳で、Addpictureを使用して、明示的にLinkToFile:=Falseを指定して下さい。
ActiveSheet.Shapes.AddPicture( _
Filename:=myFileName, _
LinkToFile:=False, _
SaveWithDocument:=False, _
Left:=Selection.Left, _
Top:=Selection.Top, _
Width:=0, _
Height:=0)
参考URLにPictures.Insertメソッドを使い、クリップボードにコピーして貼り付け戻す対処方法も載っていますが、ファイルが巨大化する怖れがあります。単にペーストでなく、JPEG形式を指定して貼り付けるべきでしょう。
この回答への補足
mitarashiさん
回答ありがとうございます!
せっかくコードを貼り付けて頂いたのですが、どこにそれを入れて何を消したらいいのかわかりません。。
マクロ使い始めて1週間で何もわからなくて本当に申し訳ないのですが全体のコードをもらえませんでしょうか?
Sub macro1()
Dim p As String
Dim h As Range
'写真の保存場所
p = "C:\Users\☆☆☆\Documents\picpic\"
'現在表示されている写真は一度削除する
ActiveSheet.Pictures.Delete
'商品名が入力されている行まで繰り返す
For Each h In Range("D2:D" & Range("C1048576").End(xlUp).Row)
'写真ファイルが保存されている時
If Dir(p & h) <> "" Then
With ActiveSheet.Pictures.Insert(p & h)
.Name = h
'写真ファイル名が入力されているセルから2つ左のセルに挿入
.Top = h.Offset(0, -2).Top
.Left = h.Offset(0, -2).Left
'写真サイズの設定
.Width = h.Offset(0, 1).Width
.Height = h.Offset(0, 1).Height
End With
End If
Next
End Sub
上記が今使わせてもらっているコードです。
いろいろ削除したり貼り付けしてみたのですがうまくいきませんでした。
リンク先のクリップボードにコピーというのもどうしていいかわからず、
>JPEG形式を指定して貼り付けるべきでしょう。
もわからないです。。
せっかく教えて頂いたのにすみません。ご回答いただけると有難いです。よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて 2 2022/11/15 16:14
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Excel(エクセル) エクセル、画像ファイル名の書かれたセル(複数個所)に画像を一括で表示させる方法 1 2023/04/19 00:19
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
- Excel(エクセル) 【至急 詳しい方教えて下さい】Excelの表を変換したい 6 2022/04/21 18:35
- Visual Basic(VBA) Outlook VBAについて 1 2023/07/10 12:41
- Excel(エクセル) 【マクロ】プリントスクリーンした画像をエクセルに貼付して印刷したい 6 2022/11/30 20:11
- Windows 10 フォルダ内の全ての画像を矢印キーでスライドできるようにしたい 1 2022/10/21 12:53
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて
Excel(エクセル)
-
エクセル フォルダの画像を画像名で検索して貼り付け
Excel(エクセル)
-
マクロで画像挿入→エラー「リンクされたイメージを表示できません」
Excel(エクセル)
-
-
4
ダブルクリックで貼り付けた画像からリンクのみ削除し、画像を残したい
Visual Basic(VBA)
-
5
エクセルで次々と画像を表示させたい
Excel(エクセル)
-
6
Pictures.Insertメソッド⇒Shapes.AddPictureメソッドに変更したいです。
Visual Basic(VBA)
-
7
エクセル2010の写真貼り付けについて。
その他(Microsoft Office)
-
8
Excelで数字を入れたら対応する図を呼び出したい
Excel(エクセル)
-
9
excelにて。VBAで、フォルダ内の画像を一覧の横に表示させたい。
Excel(エクセル)
-
10
エクセルに添付された画像が×になり見れない
PowerPoint(パワーポイント)
-
11
エクセルのセルに指定画像(.jpg)を自動で貼り付けたいです。
Excel(エクセル)
-
12
Excel マクロ 画像をリンクせずかつ圧縮して貼りつける方法を教えてください
Excel(エクセル)
-
13
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
14
エクセルvbaでの図形のカット(コピー)ペーストについて
Excel(エクセル)
-
15
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
16
エクセルでリンクされたイメージが表示できません
Visual Basic(VBA)
-
17
任意フォルダから画像をすべてエクセルの指定マスに貼り付けをしたい
Visual Basic(VBA)
-
18
エクセルに張り付けた写真のファイル名が見たい
Microsoft ASP
-
19
Excel セルに入力した画像名からフォルダの画像を自動表示させたい
Excel(エクセル)
-
20
VBAの内容の修正をお願いさせて頂きます
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
同級生の顔を使ってエロ画像を...
-
iPhoneで写真を撮りました。 端...
-
マクロで画像挿入→エラー「リン...
-
pixivの画像を保存しようとした...
-
JPEGファイルに文字を入れたい
-
可愛い子はプリクラが盛れない...
-
持っている写真の画質を上げる...
-
至急回答お願いします、彼氏に...
-
「強調」の対義語は何ですか?
-
JPEG写真のファイル名を印刷す...
-
撮影日時をそのままに残して画...
-
Word差し込み印刷 画像更新され...
-
「湾岸の千葉君」での秀里毅の写真
-
PCでPDFファイルを電子書籍のよ...
-
受信した添付写真を大きくする
-
tiffファイルの解像度変更の仕方
-
出来上がったムービーのちらつ...
-
静止画に音楽をつけて、ネット...
-
pdfファイルのアイコンの種類
-
証明用写真の作り方をお教えく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同級生の顔を使ってエロ画像を...
-
iPhoneで写真を撮りました。 端...
-
可愛い子はプリクラが盛れない...
-
マクロで画像挿入→エラー「リン...
-
JPEGファイルに文字を入れたい
-
至急回答お願いします、彼氏に...
-
pixivの画像を保存しようとした...
-
写真の下に文字を入れるには?
-
tiffファイルの解像度変更の仕方
-
整形外科などで、MRIやレントゲ...
-
PCでPDFファイルを電子書籍のよ...
-
受信した添付写真を大きくする
-
「湾岸の千葉君」での秀里毅の写真
-
撮影日時をそのままに残して画...
-
エクセル・ワードの表を画像化...
-
「強調」の対義語は何ですか?
-
グーグル画像検索にかからない...
-
持っている写真の画質を上げる...
-
EXIF情報がない場合はどのよう...
-
Word差し込み印刷 画像更新され...
おすすめ情報