[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロ』(ひさっち)
こんにちは。教えてください。
エクセルにマクロで写真を取り込んだデータを別のパソコンに移動した場合、リンク先のフォルダも移動しなければなりませんよね。一度取り込んだデータをエクセルシートに貼り付けた状態にしてリンク先のフォルダが無くても、写真データを表示できる方法はありますか?
文章が苦手で申し訳ありませんが、どなたかよろしくお願いします。
< 使用 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
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.