Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 8 : Excel 2013)
写真をクリップボードにコピーするには。
投稿日時: 18/04/19 10:57:21
投稿者: eco2019

セルC3に写真ファイル名があります。
 
C:\Users\Desktop\新しいフォルダー\IMG_0350.JPG
 
これを開いてクリップボードにコピー出来ればと思っております。クリップボードにはサイズを小さくしておきたいです。
 
クリップボードに保存させ方が分かりません。宜しくお願い致します。
 
 
Sub test1()
 
Range("C3").Select
 
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
        Range("C3").Value, TextToDisplay:= _
        Range("C3").Value
         
   Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
       
    ActiveSheet.PasteSpecial Format:="ビットマップ", Link:=False, DisplayAsIcon:= _
        False
    Range("F15").Select
     
End Sub
 

回答
投稿日時: 18/04/19 11:25:43
投稿者: mattuwan44

>クリップボードにはサイズを小さくしておきたいです。
 
意味が解りかねますが、
 
シート上に挿入してコピー(またはカット?)したらクリップボードにデータが行くと思いますが、
小さくというのは貼り付けたときに元の解像度より悪くなってもファイルサイズを抑えたいということですか?

投稿日時: 18/04/19 11:43:16
投稿者: eco2019

mattuwan44さん、有難うございます。
 
写真を貼り付けて整理する書類があるのですが、写真の枠が決まっています。
 
シート上に挿入すると手間がかかるため、別なExcelで写真をドラッグ&ドロップでクリップボードコピー出来る体制にしたいと思っております。

回答
投稿日時: 18/04/19 12:44:03
投稿者: もこな2

追加コメントを踏まえると、ファイルサイズの話ではなくて、表示上のサイズの話っぽい気がします。
その上で、表示上のサイズを変えるためだけのブックを作りたいという発想になっているような・・
 
私なら、めんどくさいので、ファイルパスがつかめているなら、VBAで直接挿入するようにしちゃうような気がします。(挿入するときに倍率いじればいいだけですよね?)
 
また、枠が決まっているのであれば、その枠に合うように画像と同じ比率の図形を作っておいて、画像ファイルで塗りつぶせばいいのでは?

投稿日時: 18/04/19 13:19:48
投稿者: eco2019

もこな2さん、有難うございます。
 
そうなんです。表示上のサイズを変えるためだけのブックを作りたいという発想です。
 
 
支給されたエクセルファイルですので、そちらの方はVBAで直接挿入したくないものですから。

回答
投稿日時: 18/04/19 13:29:41
投稿者: mattuwan44

>支給されたエクセルファイルですので、そちらの方はVBAで直接挿入したくないものですから。
 
そか、じゃぁ、
マクロを置くブックを別に作って、
支給されたファイルを開いて、
指定のセル(枠)に合わせて挿入すればいいですよね?
 
手動でしようがマクロでしようが、
挿入するには変わりはないので、
クリップボードに拘る必要はないように思います。
 
ファイルが開けたなら、
自分のブックを操作するように開いたファイルを操作するように書いたらいいです。
 
違いは、
 
Workbooks("開いたファイル名”).Worksheets("操作したシート名").Range("操作したいセル範囲のアドレス")
 
と、ブック名やシート名を明示して修飾すればいいだけです。

投稿日時: 18/04/19 13:46:19
投稿者: eco2019

mattuwan44さん、こんにちは。
 
支給されたファイルはいくつもあって、決まったファイル名でもないのです。
 
 
クリップボードに拘る必要はないです。なるべく手間が省ければと思っています。

投稿日時: 18/04/19 15:07:07
投稿者: eco2019

お世話になっております。
 
一度、シートに写真を貼り付けて、その写真をコピーするようにしました。
 
ひとつ問題は、貼り付け形式がたくさんあることで、そのまま貼り付けるとMicrosoft Office 描画オブジェクトで縦横の形がくずれてしまいます。
 
多分、下記を手を加えないといけないのかとは思われますが。。。
 
ActiveSheet.Pictures.Insert(Range("C3").Value). _
Select
Selection.Copy

回答
投稿日時: 18/04/19 16:42:05
投稿者: mattuwan44

>支給されたファイルはいくつもあって、決まったファイル名でもないのです。
 
ファイルを開くダイアログボックスを表示して選択したらいかがですか?
http://officetanaka.net/excel/vba/file/file02.htm

投稿日時: 18/04/19 18:01:24
投稿者: eco2019

mattuwan44さん、有難うございます。
 
クリップボードの貼り付け方法が上手くいきませんが、これでよしとします。
 
 
色々と調べていただきお手数をお掛けしてお世話になりました。