記事の詳細

先日、お客様より「Excelファイルに50位シートがあって、それらのシートをそれぞれ別のファイルにして保存をしたい」という相談をいただきました。

Excelにはそのような機能はありません。このようなときはVBAを使ってプログラミングすることで実現します。
Excel初心者でも、以下の手順通りに操作すればきっとできると思います。

次のようなExcelファイルがデスクトップに保存されているとします。
エクセルファイルの確認

このファイルの中の3つのシートをそれぞれ別ファイルにして自動的に保存してくれるマクロを組み込んでみます。
それでは、操作です。

ステップ1 まずは「開発」タブを出しましょう

以下の図のように、[開発]タブが表示されるようにしましょう。
もし、すでに表示されているのであれば、この操作は不要です。
開発タブが表示された

[ファイル]をクリックします。
ファイルをクリック

[オプション]をクリックします。
オプションをクリック

[リボンのユーザー設定]をクリックし、「開発」をクリックしてチェックONにします。
開発にチェックを付ける

[OK]をクリックします。

[開発]タブが表示されました。
開発タブが表示された

ステップ2 VBAを作る

[開発]タブが表示されたら、プログラミングコードを記述していきます。

[開発]タブをクリックし[Visual Basic]をクリックします。
Visual Basic Editorをクリック

以下のような画面が表示されます。(Visual Basic Editorと言います)
VBEの画面

[挿入]→[標準モジュール]をクリックします。
挿入→標準モジュールをクリック

標準モジュール「Module1」が表示され、その内容が右側に表示されます。
現在は何もかかれていない真っ白な状態です。
Module1が表示されます

次のコードをコピーします

Module1にコードを貼り付けます。
コードを貼り付け

ステップ3 マクロ有効ブックとして保存する

VBAのコードを含むExcelファイルは「マクロ有効ブック」として保存する必要があります。

Excelのマークのボタンをクリックします。
Excelボタンをクリック

Excelの画面に戻ってきます。
エクセルに戻ってきた状態

[ファイル]をクリックします。
ファイルをクリック

[名前を付けて保存]→[コンピュータ]→[デスクトップ]をクリックします。
保存さきとしてデスクトップを指定

ファイルの種類を「Excel マクロ有効ブック」に設定します。
ファイルの種類を変更

[保存]をクリックします。

ステップ4 マクロを実行

いよいよ最後のステップです。
作成したマクロを実行することで、複数シートの内容が自動的に別ファイルになってデスクトップにどんどん保存されていきます。

[開発]タブをクリックし[マクロ]をクリックします。
マクロボタンをクリック

「Sheet Save」をクリックし[実行]をクリックします。
実行をクリック

下図のように、Sheet1~Sheet3の内容がそれぞれ別ファイルになって保存されました。
結果の画面

いかがでしたか?
エクセルの標準機能に無いものは自分で作ることもできます。
プログラミングができると仕事の効率も幅も広がりそうですね。

相模原市産業会館パソコン教室でお待ちしております。

相模原市産業会館パソコン研修では「アットホーム」な雰囲気でパソコンを分かるまで学ぶことができます。

月曜日から土曜日まで毎日無料体験を開始しております。

bana-pasoken-blog

 

この記事であなたの課題を解決することができましたか?

疑問点があったり、解決できなかったことがありましたら、お気軽にご相談してください。

The following two tabs change content below.
唐澤 章三

唐澤 章三

代表取締役インクループ株式会社
パソコン教室担当。UXデザインの講師として専門学校でも活躍。心理学に基づくデザインを実践している。実家が焼肉屋ということもあり、幼い頃からの経験に基づく顧客心理を活用した広告展開、運用が得意。

ほかの投稿も読んでみませんか?

    • はな
    • 2018年 4月 22日

    教えて欲しい、という内容でもよろしいでしょうか?

    エクセル2010でデータベースを作成し、そのデータを拡張表に出力したいと考えています。

    1つのエクセルファイルの1つのシートをデータベースにして、
    複数のシートから、帳票毎にデータを抽出して印刷したいのです。

    VBAは判っていませんが、なんとか作成できないかと・・・。

    1つ目として、マクロの記録は作成できますので、
    各シート毎にそれぞれで友好なマクロを作成する方法を教えて頂けないでしょうか。

    • インクループ株式会社
      • インクループ株式会社
      • 2018年 4月 23日

      はな 様
      コメントをありがとうございます。

      1つのエクセルファイル内に複数のシートがあり、
      そのうちの一つがデータベースの役割をしている。
      これを「データベースシート」と便宜上呼びます。
      その他のシートは印刷用であり、データベースシートからデータを参照して、
      印刷を実行するという形でしょうか。

      おそらく、ご質問の内容ですと各印刷用シートにおいては
      VLOOKUP関数を使用してデータベースシートの内容を参照して、
      印刷を実行することになります。

      さて、ご質問の件ですが、
      マクロは通常、全シートから呼び出すことができます。
      問題は呼び出し元のシートが何か?によって動作が変わることです。

      例えば
      1.A1に「あああ」と入力
      2.印刷を実行

      上記のマクロを作成した場合、Sheet1で実行すれば、
      Sheet1のA1に「あああ」と入力後に印刷が実行されます。
      Sheet2で実行すれば
      Sheet2のA1に「あああ」と入力後に印刷が実行されます。
      もし、どのシートから実行されても
      Sheet1に「あああ」と入力後に印刷が実行されるようにするには、
      「Sheet1を選択する」という動作をマクロの最初に含める必要があります。

      ◆記録手順
      1.「Sheet1」以外を選択しておく
      2.マクロの記録を開始する
      3.「Sheet1」を選択する
      4.セルA1に「あああ」と入力する
      5.印刷を実行する
      6.マクロの記録を修了する

      もし、その他何かご質問がありましたらお願いいたします。

  1. この記事へのトラックバックはありません。

パソコン正しく使えていますか?

相模原市産業会館パソコン教室

AD

ページ上部へ戻る