Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Pro : Excel 2016)
写真張り付け後リンクになってしまう
投稿日時: 21/02/26 18:50:32
投稿者: けんでん

写真張り付けVBAを使用していたのですが、保存後作成者でない方へファイルを渡したところ
肝心の写真がリンクになっていると指摘を受けてしまいました。
このようなことを防ぐ構文の入れ方がわからなく書き込みいたしました。
どなたかご教授願います。
 
使用している構文は下記のとおりです。
 
    Dim uFil As FileDialog
    Dim uCel As Range
    Dim uCelW, uCelH As Single
     
    ' 貼り付けセルの大きさ
    Set uCel = ActiveCell
        uCelW = uCel.Width
        uCelH = 225 'uCel.Height
    Set uCel = Nothing
     
    ' 貼り付ける画像の選択
    Set uFil = Application.FileDialog(msoFileDialogFilePicker)
 
    With uFil
        .AllowMultiSelect = False
        With .Filters
            .Clear
            .Add "画像ファイル", "*.jpg; *.gif; *.png", 1
        End With
    End With
     
    If uFil.Show Then
        ActiveSheet.Pictures.Insert(uFil.SelectedItems(1)).Select
        With Selection.ShapeRange
            .LockAspectRatio = msoFalse
            .Width = uCelW
            .Height = uCelH
        End With
    End If
     
    Set uFil = Nothing

回答
投稿日時: 21/02/26 21:29:48
投稿者: simple

こちらのサイトに「即効テクニック集」というものがありますが、
そのなかの
[画像ファイルを挿入する]
https://www.moug.net/tech/exvba/0120020.html
を参考にしてみて下さい。
 
そこに書いてあるように、Pictures.Insertは、

引用:
さらに、Excel 2007までは画像情報と一緒に保存されていたのに対し、
Excel 2010以降ではリンク貼り付けに仕様が変わるなど、
Excelのバージョンによって画像の保存方法が異なります。

その記事にあるように、
・挿入して、コピーしてペイストするとか
・AddPicturesメソッドを使うなどの方法で、
リンクではなく埋め込むことができるようです。
 
紹介した記事や、ネット上で検索したり、色々と研究してみて下さい。

回答
投稿日時: 21/02/27 11:41:05
投稿者: simple

入力ミスの訂正です。
誤 AddPicturesメソッド
正 AddPictureメソッド
 
Shapes.AddPictureですね。

回答
投稿日時: 21/03/02 07:05:02
投稿者: simple

画像の縦横の比率は問わずに、指定した幅、指定した高さにする、
ということのようですから、Shapes.AddPictureの引数に所要の値を与えるだけだと思います。
即効テクニックとAddPictureのヘルプを読めば、こんな風になるのではないですか?

    Set rng = ActiveCell
    Set myShape = ActiveSheet.Shapes.AddPicture( _
                  FileName:=myFileName, _
                  LinkToFile:=False, _
                  SaveWithDocument:=True, _
                  Left:=rng.Left, _
                  Top:=rng.Top, _
                  Width:=rng.Width, _
                  Height:=225)

# 土日は休まれたでしょうから、月曜にコメントがあるかと待っていましたが。

投稿日時: 21/03/07 10:41:30
投稿者: けんでん

写真リンクにて保存されてしまう件
やはりうまく構文を作成できません。
 
なにか良い解決方法はありますでしょうか?

回答
投稿日時: 21/03/07 12:37:32
投稿者: simple

>なにか良い解決方法はありますでしょうか?
解決方法を提示しているつもりですが、
どのようなコードにされたんですか?
それをアップしてもらえますか?

トピックに返信