人気ブログランキング | 話題のタグを見る

エクセルシートの見た目だけをそのまま保存

エクセルシートの見た目だけをそのまま保存するというのは、私以外の人にも結構使い道があるかもしれない。私は日々エクセルで作ったロット毎の製品検査成績書を印刷して紙として保存しているのだが、せっかくエクセルで作ったものなのに印刷するだけではもったいないという事と、後日にその成績書を客先に提出したりする時に、数量などのデータを変更したくても紙ベースなのでできない、この2点について以前から何とかならないものかと考えていた。それで色々試行錯誤した結果、その検査成績書の見た目をそのまま別シートにコピーして、ロット№をファイル名とする一つのファイルとして保存してみてはどうかと考えついた。なぜ「見た目」なのかというと、VLOOKUP関数など別シートを参照させるような数式を使っているため、そのまま名前を付けて別名で保存すると参照先がややこしくなったりするのと、保存するファイルには数式は必要ないというのとで、「見た目」(数値と書式のみのコピー)のみを保存したいと思ったからだ。

それでマクロの記録で試してみたら、結構簡単なマクロでほぼ思い通りにできることがわかった。そのマクロというのは文字で書くと、

元シート全体をコピー
   ↓
新規作成ボタンをクリック
   ↓
新しいシート全体を選択
   ↓
形式を選択して貼り付け>値の貼り付け
   ↓
形式を選択して貼り付け>書式の貼り付け
   ↓
ロット№の入ったセルを選択

というもので、これをマクロ化することでワンクリックで瞬時にこれらの作業が完了できるようになった。(最後の「ロット№の入ったセルを選択」については特に必要ないが、そのままだとシート全体が選択されたままになるため、あえて特定のセルを選択することでそれを回避するようにした。)最初は、ロット№でファイル名を付けて保存して終了までを目指していたが、マクロの記録ではそれが無理だったために断念した。

このマクロは他の人にも役に立ちそうな気はする。私と同じように外部参照させる数式を使っている時、数式は必要なく数値のみ保存したい時、開いているシートのみを簡単に保存したい時などに有効と思われる。下にそのマクロのコードを載せておくので、興味のある人はコピーして使ってみてほしい。

(↓ここから)

Sub 完成品検査書ロット№保存()
'
' Macro1 Macro
' マクロ記録日 : 2007/12/1 ユーザー名 : TH69

  Cells.Select
  Selection.Copy
  Workbooks.Add
  Cells.Select
  Selection.PasteSpecial Paste:=xlPasteValues
  Selection.PasteSpecial Paste:=xlPasteFormats
  Range("B2").Select

End Sub


(↑ここまで)

このマクロを実行し、保存ボタンをクリックして適当な場所に名前を付けて保存すれば完了だ。私は「完成品検査書ロット№保管」というフォルダを作り、そこへロット№をファイル名にして保存するようにした。エクスプローラで名前を降順にして表示させると、ロット№が新しいもの順にずら~っと並ぶので探すのにもとても便利になった。これで「前に出荷したロット№○○○の検査書を出して」といわれた時も、すぐに対応できるようになった。

なお、マクロのコードをコピーして使うやり方が分からないという人のために、そのあたりの事を簡単に解説したものも書こうと思っていますので、しばらくお待ちください。
by th6969 | 2007-12-05 22:56 | Excel VBA