facebook

エクセルのVBAの使い方!

エクセルをより効率的に使いこなしたいのであれば、VBAについて学習するのがおすすめです。しかし、毎日のようにエクセルを使っていてもVBAについては「よくわからない」といった感想を抱く方が多いかもしれません。そこで、今回の記事では、初心者でも理解しやすいように、VBAについて概要や基本コードなどを解説します。

プログラム言語の一種「VBA」とは?

VBAVisual Basic for Applications)とは、エクセルをはじめとしたMicrosoft Officeに含まれるアプリケーションを操作するために使われるプログラム言語のうちの一種です。例えば、エクセル・ワード・パワーポイントといったアプリケーションにはVBAが組み込まれているのです。このVBAを使うことで、アプリケーションにおける機能を拡張させることも可能になるでしょう。

エクセルで「VBA」を使うメリット

エクセルでVBAを使うメリットは、例えば以下のようなものがあります。

1つ目のメリットは、業務の自動化や効率化が可能になることです。また、自動化や効率化は作業時間の短縮だけでなく、人的ミスの防止にもつながります。

2つ目のメリットは、プログラミングの初心者であっても使いやすいという点です。「マクロ記録」を利用することによって、VBAは実行結果と照らし合わせながらコードを作成することができます。この機能があることによって、初心者であっても直感的な操作によるコード作成ができるでしょう。さらにコードの作成時と同様に、直感的に既存のVBAのコードを改変して利用することも可能です。

3つ目は、特別な環境設定を必要とない点です。Microsoft Office製品であれば、VBAに関する機能は最初から備わっています。VBAを使用するにあたって、別途アプリケーションのインストール作業をしたり、端末や周辺機器を新しくすることは必要ありません。現在エクセルを使っている環境のままでVBAを使えます。

エクセルにおける「マクロ」と「VBA」の違い

エクセルには「マクロ」と呼ばれる機能が付いています。VBAと同義のように用いられることがあるため、VBAとの違いがよくわかっていない人は多いのではないでしょうか。

「マクロ」とは、アプリケーション上で行った操作を、自動でVBAコードとして記録する機能のことを指します。対してVBAは、このマクロを実行させるために使われる、Microsoft Office製品に備わったプログラム言語を意味します。記録されたマクロの中身をのぞくと、そこにはVBAコードが記されており、それらを書き換えることでマクロの動作を自由に変更させることが可能でしょう。

そのため、マクロとVBAはまるで同義かのように呼ばれることがあるわけです。なお、マクロで記録された操作手順は、必要なときに呼び出していつでも実行できます。

VBAを使えば何ができる?エクセルのVBAでできること4

VBAを使えるようになれば、さまざまな業務を簡単にこなすことが可能です。以下において、エクセルにおいてVBAでできることの例を4点紹介します。

自動でデータを処理する

エクセルは、売上データや顧客管理に使われることが多いアプリケーションです。しかし、入力されたデータから、顧客別・商品別・日にち別などに分けて、必要なデータを抽出して処理するのは非常に面倒な作業でしょう。しかし、VBAを使うことができれば、この面倒な作業をクリック1つでできるようになります。手入力する手間が省けるので、作業時間の短縮が期待できるでしょう。

データを自動収集できる

さらに、VBAを使うことによって、インターネット上にある情報を自動的に収集し、エクセル上にまとめることが可能になります。なお、収集したデータは、さらにVBAを用いることで集計したり分析したりすることもできるでしょう。

レポートやグラフの自動作成

収集や集計したデータは、一目で理解できるように、レポートやグラフにすることが多いかもしれません。そこでVBAを使えば、レポートやグラフを自動作成することが可能です。例えば、株価情報などを収集したのちに、自動でグラフ化させれば、自分専用の株式チャートを作成できるでしょう。

Office関連アプリケーションとの連携

VBAは、エクセルとほかのOfficeアプリケーションとの連携に使用することもできます。エクセルで作成したグラフを自動的にパワーポイントやワードに移したり、エクセルから抽出したデータをアウトルックから一括送信するといったことも、VBAを使うことで可能になります。

VBEの起動からVBAの実行まで!エクセルにおけるVBAの使い方

エクセルにおいてVBAを使うための方法を、以下に紹介します。

VBEの起動

VBAを使うには、最初にエディター(VBE, Visual Basic Editor)を立ち上げなければなりません。エクセルの画面上部のリボンにある「開発」をクリックし「Visual Basic」を選択することでVBEは起動します。なお、「Alt+F11」を押すことでも、同様にVBEは起動します。

「開発」がリボンにない場合は、「ファイル→その他→オプション」と順に選択してください。さらに、オプションより「リボンのユーザー設定」を選択し「開発」のチェックボックスをクリックしましょう。このような操作をすることで、リボンに「開発」が表示されるようになるでしょう。

標準モジュールの作成

VBEは画面左側にある「プロジェクトウインドウ」と、画面右側のコードを記入する「コードウインドウ」から成っています。しかし、初期状態ではVBAを記入するモジュールは作成されていないため、コードウインドウにはなにも表示されていません。VBE画面上部のタブより「挿入→標準モジュール」を選択し、モジュールを作成してください。

このようにすることで、プロジェクトウインドウの中に「標準モジュール」というフォルダーが作られます。その中に「モジュール(初期状態ではModule1)」が作成されると、画面右のコードウィンドウが白くなり、VBAが書き込める状態になります。

プロジェクトウインドウを右クリックし「挿入→標準モジュール」を選択する、あるいは「Alt + I + M」というショートカットキーを使うことでも、標準モジュールは作成可能です。なお、不要なモジュールがある場合には「右クリック→(モジュールの名前)の解放」を選択することで削除できます。VBAを保存しておきたい場合は、削除の際に「エクスポート」を選択するとよいでしょう。

VBAの書き方の基本

VBAはマクロを動かすためのプログラム言語です。そのため、VBAを記入する場合は、マクロを作るための構造をあらかじめ用意しなければなりません。VBAを書く際には、まず以下のように入力してください。

Sub マクロ名()
End Sub

Sub マクロ名()」は、文字通りマクロの名前のことです。「マクロ名」の部分を変更することで、マクロに好きな名前が付けられます。名前を付けたなら、次は「Sub マクロ名()」と「End Sub」の間に、マクロを動作させるためのVBAコードを記入してください。入力が終わったなら、画面右上の閉じるボタンを押してVBEを閉じてください。

VBAを実行するには

VBAを実行するには、エクセルの画面上部にあるリボンから「マクロ」を選択してください。次に記録したマクロ名を選びます。「Sub マクロ名()」のままなら「マクロ名」と書かれたマクロを選択して、実行ボタンを押しましょう。するとエクセルシートに実行結果が表示されます。

基本的なコードを覚えよう!エクセルのVBAの基本コード4

VBAを使うにあたっては、基本コードを覚えてしまうのがおすすめです。ここでは、エクセルでVBAを使う際に用いる基本コードを4つ紹介します。なお、以下のコードではマクロの名称をすべて「example」としています。実際に使う場合には、自分で好きな名前に変更してください。

メッセージボックスを表示する

実行することでエクセル上のメッセージボックスにおいて「Hello, World!」という言葉が表示されるコードです。

Sub example1()
MsgBox "Hello, World!"
End Sub

セルにメッセージを入力する

セル(A1)に「Hello」というメッセージを入力するVBAコードです。

Sub example2()
    Range("A1").Value = "Hello"
End Sub

セルの値を読み取る

セル(A1)の値を読み取ってメッセージボックスに表示するコードです。

Sub example3()
    Dim myValue As String
    myValue = Range("A1").Value
    MsgBox "セルA1の値は " & myValue & " です。"
End Sub

入力の繰り返し処理

A1からA10までのセルに、繰り返し同じ言葉「Hello」を入力する際のコードです。

Sub example4()
    Dim i As Integer
    For i = 1 To 10
    Range("A" & i).Value = "Hello"
    Next i
End Sub

エクセルの機能拡張が実現できる!VBAで業務効率化を目指そう

VBA」とは、エクセルをはじめとしたMicrosoft Office製品のアプリケーションに付随するプログラムの一種です。このVBAを用いれば、エクセルにおいてさまざまな機能拡張が実現できるでしょう。エクセルを自由自在に扱うのにVBAの知識は欠かせません。これを機会に、VBAを学習してさらなる業務効率化を目指しましょう。

最新情報をチェックしよう!