- ベストアンサー
excelのシートからVBAを除いて書き出し
特定のExcelのシート(以後、出力シート)だけを予め指定したファイルへexcel形式で書き出したいです。 そのとき、出力シートにはボタンやボタンに関連付けされたVBAプログラムがあるのですが、それらのボタンやシートに関連付けされたVBAは書き出さずに、純粋に各セルに記載されている内容と罫線情報だけを書き出したいです。 出力シートにはVBAを残したくないのが理由ですが、上記のような書き出しをするにはどのようにすればよいのでしょうか。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
Workbook_BeforeSaveイベントで、保存時に不要なVBAコードやモジュールを削除するコードを実行すればよい。 「名前を付けて保存」で新しい名前で保存するときにはVBA削除コードを実行し、「上書き保存」の場合は削除コードを実行しないようにする。ただし、削除コードを実行するかしないかは自動でもできると思うが、今思いつかないので、MsgBoxで選ぶようにする。 「ボタンに関連付けされたVBAプログラム」を削除すればボタンは動かなくなるが、それでいいのですか。 今ちょっと忙しいので、コードはかけないが、2 3日すれば何とかなるが。 なお、2008-03-14 11:55:09のOKwaveの私の回答にVBA削除コードが載っているはずです。ちょっと手直しが必要かもしれませんが。
その他の回答 (4)
- okormazd
- ベストアンサー率50% (1224/2412)
#4です。 補足です。 「エクセルVBAを保存時に消したい」でOKwaveを検索すればVBA削除コードが出てくるでしょう。
- eden3616
- ベストアンサー率65% (267/405)
Excelのバージョンが記載されていないので、手持ちのExcel2007での回答となります。 ▼共通▼は共通の手順ですが、シートに作成されているオブジェクトの種類によって、▼1▼または▼2▼のうち不要であれば必要ありません。 ▼共通▼ (1)出力シートを右クリック→「移動またはコピー」 (2)移動先のブック名「(新しいブック)」、「コピーを作成する」にチェック ▼1▼挿入の図形などオートシェイプの削除 (3)「ホーム」タブより「検索と選択」→「オブジェクトの選択」→Ctrl+Aで全て選択→Deleteで削除 ▼2▼フォームコントロールやActiveXコントロールの削除 (4)「開発」タブ※1より「デザインモード」に切替→「複数オブジェクトの選択」※2→「全て選択」→「OK」→Deleteで削除 ▼共通▼ (5)「名前を付けて保存」で拡張子を「xlsx」で保存してください。シートモジュールに記載されたコードは削除されて保存されます。 補足 ※1「開発」タブは「Excelオプション」の「基本設定」にある「「開発」タブをリボンに表示する」で表示されます。 ※2「複数オブジェクトの選択」は「Excelオプション」の「ユーザー設定」よりクイックアクセスツールバーに追加してください。 (コマンドの選択で「リボンにないコマンド」を選べば下の方にあるかとおもいます)
- rolly-ys
- ベストアンサー率43% (25/57)
私は次のようにしています。 コピー元のシートの全セル選択→コピー→貼り付け先シートの全セルを選択→形式を選択して貼り付け→値→OK→形式を選択して貼り付け→書式→OK でどうですか。
- Oubli
- ベストアンサー率31% (744/2384)
保存するときにフォーマットを選べばよいでしょう。VBAを除外する方法はいくつかあると思いますが、簡単なのはCSVで保存することです。エクセルの余計な機能は保存ファイルから削除されますからテキストデータだけが残ります。CSVはほとんどのデータベースから読み込めますから汎用的です。ただし罫線やフォントの情報はは消えますね。もう一つの方法はPDF化することですが、他のソフトからの読み込みは困難になります。