Excel のシート上にPDFなどのファイルを添付する機能があるのですね。
最近知りました。
私の業務では使用することはないのですが、
1.ダイアログボックスを開く
2.任意のファイルを選択
3.シート上に展開もしくはアイコンで表示
ってマクロをリボン上に設置したら資料や仕様書作成時に
便利かなぁって思ったので、(そんな資料を見たことがあるので)
マクロの記録でどんな記述になるか調査してみました。
******************
マクロの記録
以下の手順でマクロの記録をしました。
1.挿入タブ > オブジェクト
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によって変わってきます。
この部分が何のアイコンを表示させるか決めているところだと思います。
_/_/_/_/_/_/_/_/_/_/_/
個人用マクロブックについてはこちら
リボンに登録についてはこちら
_/_/_/_/_/_/_/_/_/_/_/_/_/_/
こちらもチェックしてみてください。