Excelのこととか色々

Excel のこととか楽天とか いろいろ書いてみます・・・

【Excel/VBAのこと51】シートに添付ファイルを挿入する (マクロの記録で作る)

   f:id:tuna-kichi:20200223230814p:plain

 

Excel のシート上にPDFなどのファイルを添付する機能があるのですね。

最近知りました。

 

私の業務では使用することはないのですが、

1.ダイアログボックスを開く

2.任意のファイルを選択

3.シート上に展開もしくはアイコンで表示

 

ってマクロをリボン上に設置したら資料や仕様書作成時に

便利かなぁって思ったので、(そんな資料を見たことがあるので)

マクロの記録でどんな記述になるか調査してみました。

 

******************

マクロの記録

以下の手順でマクロの記録をしました。

 

1.挿入タブ > オブジェクト

  マクロの記録1

 

2.ファイルタブ > 参照

  マクロの記録2

3.ダイアログボックス(エクスプローラー)からファイルを選択
4.2のウインドウに戻るので、OKを押す

 

結果はこんな感じで記録されて、

    ActiveSheet.OLEObjects.Add(Filename:= _
        "C:\Users\***\***\*****\test文書.pdf", Link:=False, DisplayAsIcon _
        :=False).Select

 

シート上にPDFファイルが展開されました。

  マクロの記録_選択ファイル展開

 

Filename のところを変数にしたらできそうな気がしたので、

GetOpenFilename で試してみました。

 

ファイル展開マクロ

**********

Sub シート上にファイルを展開()

    Dim SelectedFile As String

    SelectedFile = Application.GetOpenFilename

    ActiveSheet.OLEObjects.Add(Filename:= _

        SelectedFile, Link:=False, DisplayAsIcon _
        :=False).Select

End Sub

**********

 

これだけでうまく作動しました。

このマクロはシートにファイルを展開するパターンです。

 

アイコンのみを挿入する方法もあるのですが、
選択したファイルのプログラムによって

アイコンを選択する必要があります。

コードが複雑になりそうで、

私には簡単にできそうになかったので、今回はあきらめました・・・

ちなみに、PDF限定の場合はこんな感じです。

 

アイコンで表示マクロ

**********

Sub シート上にアイコンで表示_PDF限定()

    Dim SelectedFile As String
    Dim DisplayName As String

    SelectedFile = Application.GetOpenFilename ("Acrobat.Document.DC, *.pdf")
 DisplayName = Dir(SelectedFile)

    ActiveSheet.OLEObjects.Add(Filename:= _
        SelectedFile, Link:=False, DisplayAsIcon:=True, IconFileName:= _
        "C:\WINDOWS\Installer\*****\_PDFFile.ico", IconIndex:=0, IconLabel:=DisplayName).Select
    
End Sub

**********

SelectedFile のところをファイルを展開する場合と同じです。
DisplayName にはアイコンの下に表示する名前を定義しています。

デフォルトではファイル名が設定されているので、
同じようにしました。

  アイコン表示

下線部分は使用するPCによって変わってきます。

この部分が何のアイコンを表示させるか決めているところだと思います。

 

_/_/_/_/_/_/_/_/_/_/_/

 

 

 

個人用マクロブックについてはこちら

リボンに登録についてはこちら

_/_/_/_/_/_/_/_/_/_/_/_/_/_/

 

こちらもチェックしてみてください。

楽天人気商品6選!