エクセルで業務効率化!マクロで計算を自動化する方法。
- 修正 2003年7月20日に公開した記事を、一部修正して再度公開しました。
EXCEL活用テクニック【マクロの作り方】
【業務への活用】
Windows95の時代に、EXCEL97上で動くマクロの存在を知りました。しかも、Basic言語。期待して見てみると、コレクション、メソッド、イベント・・・。いきなり異次元の世界。新しいwindows時代のBasicはあまりに敷居が高く、強烈なインパクトを残し、私から立ち去ろうとした事を覚えています。が、それも『慣れ』なのかもしれません。当時はゴールの見えない『もの凄く高い山』をイメージしていましたが、登ってみると案外低いものです。しかも快適。メインが1で出力に9の時間をかけてプログラミングしていたMS-DOSの時代が嘘のようです。VBA (Visual Basic for Applications)の登場で自分のイメージどおりに簡単にソフトを作れる時代になりました。本サイトは、EXCELのVBAを少しでも多くの方が業務に活用し省力化のお役に立てるよう、その第一歩になれればと考えています。
ワークシートをコピーする操作の自動化マクロを作成します
- マクロは[開発]タブを使います。初期状態では表示されていません。[ファイル] > [オプション]でExcelのオプションを開いて、[リボンのユーザー設定] > [メインタブ]の下にある【開発】チェックボックスをオンにすると、追加されます。
- 【開発】タブをクリックするとリボンが変わりますので、[コード]グループの【マクロの記録】ボタンをクリックします。[マクロの記録]ダイアログボックスが表示されますので、そのまま[OK]ボタンをクリックします。
- [Ctrl]キーを押したまま【Sheet1】をドラッグします。[Sheet1(2)]が作成されたら、【記録終了】ボタンをクリックします。
- 【Visual Basic】ボタンをクリックすると、エディターが開きます。プロジェクトエクスプローラから、[標準モジュール]⇒[Module1]を選択します。ここで、コードウィンドウを確認してください。この部分が記録されたマクロになります。
- コードウィンドウ内のマクロはSheet1をコピーしてSheet1の右側に表示させるというものです。
Sub Macro1() ' ' Macro1 Macro ' ' Sheets("Sheet1").Copy After:=Sheets(1) End Sub
これだと汎用性がありませんので下記のように書き換えます。アクティブシートをコピーしてアクティブシートの右側に表示させるというものです。SubからEnd Subをコピーして、コードウィンドウに貼り付けます。
Sub sheetcopy() ActiveSheet.Copy after:=ActiveSheet End Sub
- ワークシートの[Sheet1(2)]をアクティブにして【マクロ】ボタンクリックすると、[マクロ]ダイアログボックスが表示されますので、[sheetcopy]を選択後、【実行】ボタンをクリックします。
- アクティブシートの右側に【Sheet1(3)】としてアクティブシートがコピーされました。
このようにEXCELの操作をマクロに記録し編集を繰り返す事が、VBA (Visual Basic for Applications)を理解する近道ではないかと思います。今回のマクロは【簡単入力計算書】の中にも組み込んでいますので併せてお試しください。
Excel活用テクニック