突然ですが、Excelと言われて、何をイメージされるでしょうか。
在庫管理などのデータベース処理
スパークラインやグラフを使った視覚的情報
関数やピボットテーブルを使用した計算処理
などなど。
表計算ソフトですので、そういうイメージが強いと思います。
今回は、VBAの話をさせていただこうと思います。
VBA……
Visual Basic for Applications(ビジュアルベーシック・フォー・アプリケーションズ、VBA)は、主にマイクロソフト製のMicrosoft Officeシリーズに搭載されているプログラミング言語である。
~Wikipediaより
Excelだけではなくて、もちろんWordやAccessにも搭載されています。
何ぞや、と思われる方もおられると思いますが、
マクロといえば、少しピンとくるかもしれませんね。(=ではないのですが。)
何ができるか、といわれれば、
VBですので、やろうと思えばかなりのことができます。
ゲームだって作れます。
(それを作成できるか、運用できるか、は置いておきます。)
例えば、
- 起動したときにそのファイルのバックアップを作成し、終了するときには上書きを確実にする。
- 複数のアンケートの回答ファイルから、データを抽出してグラフを作る。
- webページを読み込み、埋め込んだタグごとに抽出し、リストにまとめる。
- 逆にリストから、タグを埋め込んだwebページを生成する。
- ファイルの名前を法則に基づいて、変更する。
- 条件を満たしたファイルを一斉削除する。
- データベースに接続して、必要なデータのみを抽出する。
- よく行う工程を、自動化して作業を短縮化する。
みたいなこともできます。
ちなみに、このVBA。
officeが入っていれば、使えます。
Excel上で「alt+F11」のショートカットで、VBE(VisualBasicEditor)を立ち上げることができます。
(初期状態では表示されていませんが、「開発」リボンの「コード」タブの「Visual Basic」でも開けます。)
この、少し武骨なデザインの見慣れないウィンドウが開きます。
これがエディタのVBEです。
試しにどういう表示になるのかやってみましょう。
マクロの記録を押します。
この画面が出るので、そのまま記録を開始して、
シート上でいろいろ操作をして、記録の終了を押してみましょう。
先ほどの、エディタ画面に「module1」というのがあるので、
ダブルクリックすると開きます。
こんな感じです。
ちなみに何をしたかといいますと、
- Range(“A1”).Select:
A1セルを選択した。 - ActiveCell.FormulaR1C1 = “12345”:
12345 を入力した。 - Range(“A1”).Select:
A1セルを選択した。 - Selection.Copy:
選択されたセルをコピーした。 - Range(“A2”).Select:
A2セルを選択した。 - ActiveSheet.Paste:
張り付けた。
いかがでしたでしょうか。
簡単に紹介させていただきましたが、
少しでも興味を持っていただけたなら、幸いです。