Excel 2007で、画像の代替テキストに書かれているパスから画像を貼り直すVBAスクリプト
スポンサードリンク
Firefoxでローカルに保存したhtmlをExcel2007で開くと、画像が全てファイルへリンクした状態になり、画像フォルダとセットで取り扱 わないと画像が表示されなくなったります。
このスクリプトは、画像の代替テキストに残っている画像パスを頼りに、画像を埋め込みし直します。
ただし、代替テキストにパスが入るのは、htmlのalt要素がない場合のみです。
役に立つ機会はほとんどないでしょうwww
Option Explicit
' Firefoxでローカルに保存したhtmlをExcel2007で開くと、画像が全て
' ファイルへリンクした状態になり、画像フォルダとセットで取り扱
' わないと画像が表示されなくなったりします。
' このスクリプトは、画像の代替テキストに残っている画像パス
' を頼りに、画像を埋め込みし直します。
' ただし、代替テキストにパスが入るのは、htmlのalt要素がない場合
' のみです。
'
Sub 画像リンクしなおし()
Dim pic As Shape
For Each pic In ActiveSheet.Shapes
Dim imagePath As String
imagePath = pic.AlternativeText ' 代替テキストには画像パス
If imagePath <> "" Then
Dim pic2 As Object
Set pic2 = ActiveSheet.Pictures.Insert(imagePath)
' ここでエラーになる場合は、画像パスに画像が存在しない
With pic2
.Left = pic.Left
.Top = pic.Top
.Width = pic.Width
.Height = pic.Height
End With
' 元画像削除
pic.Delete
End If
Next
End Sub
これをしないと、恐ろしいことに、Excel 2007で「配布準備-最終版にする」をしても、画像フォルダがないと画像がロストするんです。
投稿 大野 義貴 [パソコン・インターネット] | 固定リンク |
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3610





![: Amazon.co.jp: プラスティック・メモリーズ 1【完全生産限定版】(イベントチケット優先販売申込券付) [Blu-ray]](/lists/_9/B00VWX66E8.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 2【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX66K2.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 3【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX6MV0.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 4【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX66IO.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 5【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX6Y0E.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 6【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX69D6.jpg)


コメントする