[[20140827103835]] 『マクロ』(ひさっち) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロ』(ひさっち)

こんにちは。教えてください。

エクセルにマクロで写真を取り込んだデータを別のパソコンに移動した場合、リンク先のフォルダも移動しなければなりませんよね。一度取り込んだデータをエクセルシートに貼り付けた状態にしてリンク先のフォルダが無くても、写真データを表示できる方法はありますか?

文章が苦手で申し訳ありませんが、どなたかよろしくお願いします。

< 使用 Excel:Excel2003、使用 OS:Windows7 >


 > マクロで写真を取り込んだ

 画像の挿入方法は Pictures.Insert の方法と
 Shapes.AddPicture の方法の2つがあります。

 手動で画像を挿入する操作のマクロ記録をとると  Pictures.Insert が
 記録されます。 Pictures.Insertは 2010 からリンク貼り付けに変わりましたが、
 それよりまえのバージョンでは リンクしないで取り込んでくれていました。

 一方の  Shapes.AddPicture のほうは 下のサンプルのように

 >    '画像を挿入
 >    With ActiveSheet.Shapes.AddPicture( _
 >          Filename:=PicFile, _
 >          LinkToFile:=False, _
 >          SaveWithDocument:=True, _

 LinkToFile:= に False を
 SaveWithDocument:= に True を指定すれば、バージョンに関係なく
 リンクせず画像を貼り付けてくれます。

 Sub AddPictureSel() '選択範囲(Selection) に Picture挿入
    Dim Target As Range: Set Target = Selection
    Dim PicFile As Variant
    Dim rX#, rY#, Ratio#  ' (ratioX, ratioY, ratio)
    Dim L#, T#, W#, H#    '(Left, Top, Width, Height)

    '[ファイルを開く]ダイアログボックスを表示
    PicFile = Application.GetOpenFilename( _
                        "画像ファイル,*.jpg;*.jpeg;*.gif;*.tif;*.png;*.bmp")
    If VarType(PicFile) = vbBoolean Then 'Cancel = True: Exit Sub
        Exit Sub
    End If

    '画像を挿入
    With ActiveSheet.Shapes.AddPicture( _
          Filename:=PicFile, _
          LinkToFile:=False, _
          SaveWithDocument:=True, _
          Left:=Target.Left, _
          Top:=Target.Top, _
          Width:=-1, _
          Height:=-1)
        W = .Width
        H = .Height
        rX = Target.Width / W
        rY = Target.Height / H
        If rX > rY Then
            Ratio = rY
        Else
            Ratio = rX
        End If
        .Width = W * Ratio
        .Height = H * Ratio

        '選択範囲の中央(横方向/縦方向の中央)に配置
        L = Target.Left + (Target.Width - .Width) / 2
        T = Target.Top + (Target.Height - .Height) / 2
        .Left = L
        .Top = T
    End With
 End Sub
(kanabun) 2014/08/27(水) 11:17

すごく難しいことだったんですね。簡単に考えていました。
ありがとうございます。またよろしくお願いします。
(ひさっち) 2014/08/27(水) 20:26

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.