表計算ソフトのExcelを日常業務で使っている方は多いと思います。一覧表のセルに関数を入力して自動計算をさせたり、文章をセルに入力し議事録のように使用したり、自由度が高いのでいろいろな用途に利用できて便利ですね。でもVBAプログラミングができると様々なExcel操作を自動化することができるのです!
たとえば、ボタンを押したら自動で計算が開始し終わったらメッセージを表示させたり、入力ミス防止や入力支援ができるようにユーザーフォームを作ったり、Accessなどのデータベースと連携しデータ更新を自動化したり、Web画面からデータを自動で抽出したり・・・ということもできます!
業務効率化をすすめる、はじめの一歩としてVBAプログラミングをはじめていみましょう!
■Excelを起動する
まずは、Windowsのデスクトップから新規のExcelファイルを作成しアイコンをダブルクリックしてExcelを起動しましょう。
Excelが起動しました。
■マクロ有効ブックで保存
まず最初にExcelファイルを「マクロ有効ブック」に指定し名前を付けて保存しましょう。Excelを開いた状態で、メニューの「ファイル」→「名前を付けて保存」をクリックするか、ショートカットキーの「F12」キーをクリックすると「名前を付けて保存」ダイアログボックスが表示されます。
ファイル名の入力欄に「VBAテスト.xlsm」と入力します。そして、ファイルの種類選択欄に「Excelマクロ有効ブック(*.xlsm)」を選択します。
「保存」ボタンを押しファイル保存します。ファイル名が変更され、ファイルの拡張子が「.xlsm」で保存されました。
■リボンのメニューに「開発」タブを表示
Excel上部のメニュー項目に「開発」タブを表示する設定をします。メニューの「数式」辺りを右クリックします。
表示された項目の「リボンのユーザー設定(R)…」をクリックします。
「Excelのオプション」画面が開きますので下図の様に「開発」を右の枠に移動し☑チェックボックスを入力しOKボタンを押します。
Excelのリボンメニューに「開発」タブが表示されました。
■VBE(エディタ)を開く
ExcelにはVisualBasicEditor(VBE)というVBAコードを記述するエディタが標準で搭載されています。先ほど表示した「開発」タブをクリックするとリボンが表示されますので一番左の「VisualBasic」をクリックします。または、ショートカットの「Alt」キーと「F11」キーの同時押しでも同様に表示されます。
VisualBasicEditor(VBE)が起動しました。
VBAのプログラムコードはVBEで記述していきます。ただし最初はコードを記述しないで「マクロの記録」でコードを作成してみましょう。
■マクロの記録
「マクロの記録」とは、Excelで操作した動作や作業(セルへの入力など)を自動でVBAコードに変換してくれる機能です。今回行う作業はセルにコメントを追加して表示をさせるマクロを作ります。始める前にA1セルをクリックしておいてA1セルが選択された状態にしておきましょう。先ほど追加したメニューの「開発」タブを選択し、「マクロの記録」をクリックします。
マクロの記録ダイアログが表示されますので、マクロ名をそのままの「Macro1」、マクロの保存先もそのままの「作業中ブック」とし、OKボタンをクリックします。
ダイアログが閉じたら、これから行う動作が全てマクロに記録されます。セルをクリックしたり、スクロールバーを移動させたりしないように注意しましょう。(ただし、メニュー選択などの動作は記録されません)
それでは始めます。(これからの操作が記録されます)
・(1)B2セルをクリックします。
・(2)B2セルが選択された状態で右クリックします。
・(3)メニューの中の「コメントの挿入」を選択します。
・(4)B2セルにコメントが挿入されます。
・(5)コメントに「マクロテスト」と入力します。
・(6)A1セルをクリックします。
・(7)メニューの「開発」タブを選択し、「記録終了」をクリックします。
それでは今記録したマクロのコードを見てみましょう。「Alt」キーと「F11」キーの同時押しでVBEを開きます。
VBEの左側のエクスプローラーの「標準モジュール」の左側の「+」を展開すると「Module1」が表示されます。
「Module1」をダブルクリックすると、中央のコードエディタに先ほど記録したコードが表示されます。
ここで一旦VBEを閉じましょう。右上の×で閉じます。
■マクロの実行
今記録したマクロを実行してみましょう。実行する前にB2セルのコメントを削除します。コメントが納入されているB2セルを右クリックし「コメント削除」を選択し、コメントを削除します。
メニューの「開発」タブを選択しリボンの左側の「マクロ」をクリックします。
「マクロ」画面が表示されます。マクロの名前に「Macro1」が選択されていますので、そのまま「実行」ボタンをクリックします。
B2セルにコメントが追加されました。コメントの設定が「非表示」になっているのでB2セルにカーソルを合わせるとコメントが表示されます。
このようにマクロの記録を使うと操作を再現することができます。ちなみにコメントを削除しないままマクロを実行すると実行時エラーとなってしまいますので注意しましょう。終了ボタンでエラーメッセージを終了します。
■コードを変更する
「Alt」キーと「F11」キーの同時押しでVBEを開きます。下記のようにコードが表示されていると思います。
Sub Macro1() ' ' Macro1 Macro ' ' Range("B2").Select Range("B2").AddComment Range("B2").Comment.Visible = False Range("B2").Comment.Text Text:="sumio:" & Chr(10) & "マクロテスト" Range("A1").Select End Sub
下記のようにコードを変更します。
Sub Macro1() Range("B2").AddComment Range("B2").Comment.Visible = True Range("B2").Comment.Text Text:="sumio:" & Chr(10) & Now() & "マクロテスト" Range("A1").Select End Sub
プログラムコードを簡単に説明します。
先頭部分の「’」はコメントアウトです。その行の「’」から右側はプログラム実行は無効になります。不要なので削除します。
「Range(“B2”).AddComment」でコメントを追加します。
「Range(“B2”).Comment.Visible = True」でコメントを常に表示します。
「Range(“B2″).Comment.Text Text:=”sumio:” & Chr(10) & Now() & “マクロテスト”」で現在の時間と文字を表示します。「Now()」が現在日時を取得するメソッドです。
「Range(“A1”).Select」でA1セルを選択します。
それでは変更したマクロを実行してみましょう。マクロを実行する前にB2セルのコメントは削除してください。
先ほどマクロを実行した手順で、「開発」タブ→「マクロ」を選択しマクロ画面で「実行」ボタンをクリックします。
上記の様にコメントが常に表示され、コメントの内容にコメントを追加した日時が追加されました。
■まとめ
いかがだったでしょうか。このように「マクロの記録」を使うことでコードを自動作成し、必要な個所を修正することでお手軽にマクロを作成することができました。今回の記事はVBAプログラミングのほんのさわり部分ですがVBAがどのように動作するのかちょっとは伝わったかなと思います。
次回の記事はボタンを追加したりダブルクリックで処理をしたりといったことを紹介したいと思いますのでご期待ください。
コメント