welcome to tetsuyanbo web site!!

tetsuyanbo

VBA

Excel VBAメモ オブジェクトの挿入で埋め込んだ圧縮ファイルを指定した場所に保存してみる

投稿日:

せっかくExcelに他のExcelファイルを埋め込めるんだから、他のファイルをうまく埋め込んで1つのファイルにできないもんかなぁって思ってネットに聞いてたら...あるんだねぇ。

ポイントはこんなとこ。

  • オブジェクトの挿入でシートに圧縮ファイルを埋め込む
  • OLEObjectsから圧縮ファイルのOLEObjectを取得する
    ※オブジェクトそのものの名前を変更するExcelの操作がわからないので、今回はシートに1つだけオブジェクトがあるという前提にした
  • OLEObjectをコピーする
  • コピーしたら一時フォルダに圧縮ファイルが一時的に保存されるので、そいつをコピーする

まずは圧縮ファイルの内容はこんな感じ。

こいつらを圧縮ファイルにする。

んで、準備したExcelはこんな感じ。
さっき作った圧縮ファイルをオブジェクトの挿入でシート上に追加しただけ。

ちなみに、オブジェクトの挿入でシート上に圧縮ファイルを追加する手順はこんな感じ。

  1. 挿入タブのオブジェクトをクリックする。
  2. "オブジェクトの挿入"って画面が表示されるので、"新規作成"ってタブをクリックする。

    オブジェクトの種類ってとこで"Package"って項目をクリックしたら、画面右下の"OK"ボタンをクリックする。
    ※何でか"Package"って項目が2つあるけど、どっちでもいいみたい。
  3. "パッケージの作成"って画面が表示されてファイルを選んでくれって言ってくるので、ファイルを選択する。

    ファイルを選択したらこんな感じ。
    んで、画面右下にある"次へ"ボタンをクリックする。
  4. パッケージの作成って画面が表示されてラベルってのを教えてくれって言ってくるけどデフォルトでファイル名が表示される。
    今回は特に影響しない項目なので、そのまま画面の右下の"完了"ボタンをクリックする。

    選んだファイルがシート上に表示されたらおしまい。

で、コードはこんな感じ。

実行したらこんな感じ。
今回保存する場所は"D:¥Output"ってフォルダーにしたんだけど、指定した場所に圧縮ファイルが保存されとる。

ちなみに、一時フォルダーにはこんな感じで圧縮ファイルが一時的に保存される。
保存される場所はシステムドライブがCの場合"C:¥User¥(アカウント名)¥AppData¥Local¥Temp"になる。
んで、Excelを終了すれば一時フォルダーからファイルは削除されるはず。
※AppDataフォルダーは隠しフォルダーなので設定の変更が必要。

気をつけるとことしてはこんな感じ。

  • 一時フォルダーに保存するときのファイル名は指定できるけど、同じファイルがある場合はWindowsが気を利かしてファイル名に連番をつけちゃう
    ※今回のようにファイル名を固定している場合はエラー終了するので注意

そんなこんなで、明日への自分へのメモってことで。

-VBA
-, , , , , , , , , , , , , , , , , , , , , , ,

Copyright© tetsuyanbo , 2018 All Rights Reserved Powered by STINGER.