• ベストアンサー

excelのシートからVBAを除いて書き出し

特定のExcelのシート(以後、出力シート)だけを予め指定したファイルへexcel形式で書き出したいです。 そのとき、出力シートにはボタンやボタンに関連付けされたVBAプログラムがあるのですが、それらのボタンやシートに関連付けされたVBAは書き出さずに、純粋に各セルに記載されている内容と罫線情報だけを書き出したいです。 出力シートにはVBAを残したくないのが理由ですが、上記のような書き出しをするにはどのようにすればよいのでしょうか。

  • mmei
  • お礼率74% (120/161)

質問者が選んだベストアンサー

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.4

Workbook_BeforeSaveイベントで、保存時に不要なVBAコードやモジュールを削除するコードを実行すればよい。 「名前を付けて保存」で新しい名前で保存するときにはVBA削除コードを実行し、「上書き保存」の場合は削除コードを実行しないようにする。ただし、削除コードを実行するかしないかは自動でもできると思うが、今思いつかないので、MsgBoxで選ぶようにする。 「ボタンに関連付けされたVBAプログラム」を削除すればボタンは動かなくなるが、それでいいのですか。 今ちょっと忙しいので、コードはかけないが、2 3日すれば何とかなるが。 なお、2008-03-14 11:55:09のOKwaveの私の回答にVBA削除コードが載っているはずです。ちょっと手直しが必要かもしれませんが。

その他の回答 (4)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.5

#4です。 補足です。 「エクセルVBAを保存時に消したい」でOKwaveを検索すればVBA削除コードが出てくるでしょう。

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.3

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)
回答No.2

私は次のようにしています。 コピー元のシートの全セル選択→コピー→貼り付け先シートの全セルを選択→形式を選択して貼り付け→値→OK→形式を選択して貼り付け→書式→OK でどうですか。

  • Oubli
  • ベストアンサー率31% (744/2384)
回答No.1

保存するときにフォーマットを選べばよいでしょう。VBAを除外する方法はいくつかあると思いますが、簡単なのはCSVで保存することです。エクセルの余計な機能は保存ファイルから削除されますからテキストデータだけが残ります。CSVはほとんどのデータベースから読み込めますから汎用的です。ただし罫線やフォントの情報はは消えますね。もう一つの方法はPDF化することですが、他のソフトからの読み込みは困難になります。

関連するQ&A

  • VBAマクロでCSV出力

    はじめまして、よろしくお願いします。 ExcelのVBAマクロで 特定のセルの範囲を「シート名.csv」で出力するようなプログラムを書きたいです。 例)シート名「TEST」内にあるマクロボタンを押すと  A1:A10のセルの内容が「TEST.csv」(アスキー形式ならなんでも)  に出力される。 どういうやり方があるか、お勧めのサイト等、 ご教授いただけないでしょうか? 以上、よろしくお願いいたします。

  • Excel シート検索 VBA

    現在、機器管理としてExcelで管理を行っているのですが、使用履歴等の情報が多い為、機器1台に対して1つのシートを使用しています。 ただ、機器が多くなってきており、現時点でも20シートを使用している状態で、今後も増えていく予定ですので、VBAで対象のシートを探すプログラムを作成して、効率を上げたいと思っております。 ただ、VBAの知識がない為、こちらに質問させて頂きました。 イメージとしては、機器の製造番号を入力して、ボタンを押すと、各シートの製造番号が記載されている指定のセルを検索して、その製造番号のシートにジャンプするプログラムを作りたいと思っています。 VBAに詳しい方、ご教授をお願いいたします。

  • ExcelのVBAでシート内にある、特定の罫線だけを削除したい。

    ExcelのVBAでシート内にある、特定の罫線だけを削除したい。 2003を使用しています。ここのサイトで罫線に関する質問をし解決に至りましたが、もうひとつお願いしたいことがあるので、よろしくお願いします。 ある範囲(例としてA1セルからM50セルの範囲)内に色々な罫線や図形が表示されているのですが、 その中から特定(例として太さ5ポイントの普通の赤罫線)だけを削除するコードの記述が、色々試してみたのですが出来ませんでした。 どんな記述や展開をして書くのかもイメージがわきません。 よろしくお願いいたします。

  • EXCEL VBA 別シートの文字をシート内で検索

    excel2003 VBAで SHEET2に格納されているセルの文字をSHEET1のB列1~9000程度までの文字列の中で一致または部分一致するものがあればそのセル(B列のセル)をSHEET3に順次A列に出力したいのですが、うまくできません。SHEET2に格納されている場所はA列で(SHEET1、SHEET2の文字とも増える可能性あり) 宜しくお願いします。

  • エクセル VBA 特定のシートを保存

    エクセルファイルで複数シートがある中で特定のシートのみをボタンを押すことで以下の要件を満たした形で別ファイルとして保存したいと思っていますが、何分VBA初心者の自分にはハードルが高く困っています。どうかお助け下さい。 要件 ①ファイル名はシート名+(セルW5の数値)  セルW5の数値はシート1から飛んできている数式 ②保存先は任意のフォルダーを指定 ③保存後のファイルにはマクロボタンを消去 ④拡張子はxlsx形式で保存 高望みだと思いますがどうぞよろしくお願いします。

  • VBAを埋め込んだエクセルのシートの複製

    VBAを埋め込んだエクセルのシートを複製したら、ボタン類が全て無くなってしまいまいした。 Excel2010です。Excel2003では、複製してもボタンは残ります。 何か設定があるのでしょうか?

  • エクセルvba初心者です・・・

    エクセルvba初心者です・・・ シート1にあるひとつのセルをコマンドボタンを押した時にそのセル内の文字列をシート2にかいていくようなプログラムをつくりたいです。 例えば シート1のセルに文字入力→”田中”→登録ボタンおす→シート2のセルA1にはいる シート1のセルに文字入力→”竹山”→登録ボタンおす→シート2のセルA2にはいる                  ・                  ・                  ・ というようになるコードわかる方いたら教えてください。おねがいします。

  • EXCEL VBAで複数シート内のセルをまとめて表を作成

    EXCELマクロ(VBA)を教えてください。 なやんでいることは、 目的:シート1からシート5までの表の値をシート6に一覧表を作成させる。 ・シート1からシート5まで シート内の表からセル値をコピーしてマクロで(ボタンか何かで)シート6にシート1からシート5のセル値を貼り付けていくような動作をさせられるようなプログラムをつくりたいです。    表(一覧)を作成させたいので わかる方プログラミングを教えてください。よろしくお願いします。

  • VBAの書き方を教えてください

    EXCEL2003を使用しています。 特定のセルの値を取得して、値と同じシート名を検索して移動する事はVBAで可能でしょうか? 具体的に、sheet1のA1はVLOOKUPにて検索後の値(りんご)が表示されています。 コマンドボタンにて、A1の値(りんご)を取得して、数十枚あるシートの中からA1と同じ値(りんご)の名前のシートに移動したいのです。 いろいろ探したのですが、よく分からなかったので教えて下さい。

  • VBA シート1だけを保存する

    VBA シート1だけを保存する こんにちは、VBA初めてまもない初心者です よろしくお願いします 動作環境として、OS:XP excel:excel2007 を使用しています VBA で CSV データを取込む際にCSV データのとある項目以降から 2行目にして更にセルを結合しようと思っていたのですが どうやら、VBAだとワンアクションじゃ出来ないことに気がつきました。 例:    ※1行の例です。実際にはこのCSVデータが1000行近く有ります (CSV data) "AAA","BBB","CCC","DDD","EEE","FFF"         ↓ (VBAのみではワンアクションでは出来ませんでした) (excel)       A   B   C   D              1行目 AAA BBB CCC DDD 2行目   EEE     FFF    //EEEは[2A,2B]のセル、 FFFは[2C,2D]のセル ですので、やり方を切り替えて 1・1度CSVデータをエクセルシート1に取込む 2・シート2でセルの枠の結合やサイズ等を変更しながら、シート1の内容を参照する (注意:コピーではなく参照です) 3・シート2の部分だけを保存する、もしくはシート1の内容を削除する 1-3のような手順で、処理を行う事が出来るのでしょうか? アドバイス頂けたらと思います。<(_ _)>

専門家に質問してみよう