【VBA】煩雑なコピペ作業を自動化-#1 VBAとは~プログラム実行-
どんな人に読んでほしいか
- たくさんの人に書いてもらったアンケートや申請書
- テスト内容ごとに分かれた大量のテスト仕様書や入力データシート
すべて別ファイルで保存されていて一つ一つ開かないと中が見れないので大変。一つのエクセルに一覧化されてたら情報が管理しやすいけど、コピー&ペーストも大変。なんてことはないでしょうか。
RPAやAIなどIT業界にいれば、言葉を聞くようになってからかなり久しいですが、導入までのハードルからまだまだ誰でも使ってるなんて域には達していないように思います。
RPAなどなんかすごそうなものに頼らずともいつも使っているエクセルを使ってプログラムを書けば、結構できることの幅は広いのです。
この記事はたくさんのエクセルやCSVファイルの管理に四苦八苦している人に向けて、簡単に一覧化できたり、ピボットテーブルだとなんかうまくできない表の変換だったりができるようになって、イライラする作業から解放されることを目的にしています。
できれば、プログラムを触ったことのない人もできるようになれればと思います。
最初の記事はそもそもVBAってなんぞ?何ができるの?ってとこから始めたいと思います。
1-1. VBAとは?何ができるの?
マクロという言葉ならば、お聞きしたことがあるかもしれません。人によってはVBという言葉も。言葉の説明にはいいブログがあったので、こちらを参照してください。
www.sejuku.net
ここではVBAのいいところやVBAのできることを記載します。
1-1-1. VBAのいいところ
なんといっても、エクセルだけでできること。
エクセルはきっとどんな企業でも学生でも使っていて、普通のプログラミング言語と違って本当に誰でも使っているので、開発環境がすでに手元にあるというのがいいところです。
正直動作が不安定なところもあったり、エラーが意味不明だったりで、商用にする言語としては微妙で、それゆえになんとなくVBAの言語地位が低いように感じているのですが、内部利用ではこれほど導入が簡単な言語もありません。
この記事で取り上げて作れるようになってもらう機能も本当に大したことない機能だと思うのですが、本当にびっくりするぐらいありがたがれることが多いです。新人や事務処理の多い人はある程度使えるようになっていた方がいいです。
1-1-2. VBAで何ができるの?
結構いろんなことができます。Internet Explorerを自動で操作したり、他のOffice製品(特にAccessなど)を操作したり、VBAじゃなくても分析ツールでできますが、重回帰分析などもできます。この記事では大量にある統一化されたフォーマットのエクセルブックを一つの一覧にまとめるまで、を記載します。
1-2. エディタを開こう
前置きが長くなりましたが、さっそく何か書いてみましょう。
まず、エクセルを開いてください。
そこから以下を参照して、「開発」タブが表示されるようにしましょう。
support.microsoft.com
開発タブを選択 > VisualBasic というボタンをクリックして、
こんな画面が出れば成功です。
ちなみに「Alt + F11」でいきなりこの画面を開くことができます。
1-3. 実行してみよう(メッセージボックス表示)
何はともあれ、ひとまず何か実行してみましょう。
左上の「プロジェクト - VBAproject」ってタイトルの枠の中を右クリックして
挿入 > 標準モジュールを選択
そうすると灰色だった右側の大きい枠に「Module1」が開かれた状態になります。
Sub test()
これを書いて Enter しましょう。すると End Sub が自動で表示されると思います。
Sub test() ~ End Sub が test という名前のプログラムの中身を書く場所になります。
間に
MsgBox "ようこそ自動化の入口へ"
と打ってみましょう。大文字とかは意識しなくても勝手に直してくれるはずです。
こんな感じになります。
ここまで書いたら、
実行 > Sub/ユーザフォームの実行 か
書式の下くらいにある、緑三角の再生ボタンみたいなのを押しましょう。
こんなウィンドウが出てくれば成功です。
1-4. ブックの保存
ファイルの拡張子が .xls の時はそんなことなかったのですが、
今のエクセルではVBAのプログラムが入ったブックは .xlsx とは違う拡張子で保存する必要があります。
名前を付けて保存で .xlsm という拡張子で保存してください。
今回はここまでです。
次回は一つのエクセルの中でできることを書いていきます。