M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2011年6月 7日 21:40

Excel 2007で、画像の代替テキストに書かれているパスから画像を貼り直すVBAスクリプト

このエントリーをはてなブックマークに追加 mixiチェック

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

コメントする