業務上で、パソコンを使えるか使えないかで、作業効率が大きく変わってきます。
ここでは、当社で社員教育用に実施しているPCテストの一部を公開しています。
難易度も合わせて記載しますので、参考にして下さい。
テストの内容
難易度 | 中 |
---|---|
ファイル | エクセル |
内容 | マクロを使用したパターンマッチング |
制限時間 | 5分 |
解説
ダウンロードすると、エクセルファイルが2つ入っています。
問題ファイル:pc_test_6.xls
解答ファイル:pc_test_6a.xls
簡単なマクロに関する問題です。これらを使えるかどうかで、大きく作業時間が変わってきます。
解説:問題1
問題1はマクロで基本的な繰り返し計算をする問題です。
繰り返し計算は、For〜Next構文で作成しています。
For〜Nextのループ処理については、 エクセルテスト(中級:第1回) でも説明しましたが、基本的には同じような問題です。
この問題は、右側のリストにあるXに合致するYを取得するという内容ですが、 エクセルの関数の「VLOOKUP」と同じマッチング処理を行う必要があります。
VLOOKUP関数の説明は、 エクセルテスト(初級:第3回) で行いました。
エクセルの関数では、下図のように「=VLOOKUP(A5,$E$5:$F$64,2,FALSE)」のような関数を記載して作成します。

実際のコードサンプルを元に説明すると、以下のように変数iを5から64まで移動しながら、A列のセルに入っている値をE列から発見します。
この際、リストは2つありますので、左のリストのループ処理(変数iを5から64)と右のリストのループ処理(変数jを5から64) を組合せることが必要になります。
For j = 5 To 64
If Cells(j, 5) = Cells(i, 1) Then
Cells(i, 2) = Cells(j, 6)
End If
Next
Next
※セルを指定するためには、Cells(x, y)のように番号で記載します。
記載する順番はCells(行番号, 列番号)です。
For〜Next構文の特徴は、変数が1づつ増加して計算を繰り返していくという点です。 他のループ(繰り返し)処理を行う場合は、幾らずつ増加するかということを指定する必要がありますが、 For〜Next構文は指定の必要がありません。
作成したマクロは、下記の実行ボタンを押して実行するか、フォームボタンを付けて実行します。

参考:問題に入る前に
まず、マクロを利用したことがない人のために、表示方法を解説します。
なお、ここで説明しているのは「マクロを記録」するようなタイプのものではなく、
Visual Basicとしてプログラムを作成していくものです。
1. モジュール記載のための準備
モジュールを記載するためには、エクセルの機能の「Microsoft Visual Basic for Applications(VBA)」を利用します。
VBAは、「開発」から「Visual Basic」をクリックして起動します(Excel 2007以降の場合)。
Excel 2003以前の場合は、「ツール」→「マクロ」→「Visual Basic Editor」で起動します。
ちなみに、ショートカットは以下のようになります。
ショートカット | 内容 |
---|---|
[Alt]+[T]+[M]+[V] | VBAを開く |
Excel 2010の画面は、下図のようになります。

VBAを起動した後は、プログラムを記載するためのモジュールを追加しなければなりません。
下図のように「挿入」→「標準モジュール」でモジュールを追加します。

Excelで利用できるVisual Basicは、変数の宣言などを厳密にしなくても、何となく利用できるという、適当なプログラムです。
念のために、用語のみ解説をしておきます。
@プロジェクト
「プロジェクト」は実行単位の仕組みの「かたまり」です。
Excelの場合は、1つのワークブックが1つの「プロジェクト」となるので、理解しやすいと思います。
Aモジュール
「モジュール」は、「プロジェクト」の中の構成単位です。
「判断」「分岐」「繰り返し」などを記載したのが「標準モジュール」という種類の「モジュール」です。
Bプロシージャ
「プロシージャ」とは仕組みの中で動作する最小単位のことです。
プログラムはいろいろな方法で実行されますが、1つの実行で呼び出されるのが1つの「プロシージャ」です。
「Subプロシージャ」と「Functionプロシージャ」があり、「Subプロシージャ」は一方的に処理をするだけなのに対し、 「Functionプロシージャ」は処理結果などを呼び元に返送させることができます。
今回解説しているのは、この「Subプロシージャ」について解説しています。
「Functionプロシージャ」は”関数を自作で作っている”と理解すると分かりやすいかも知れません。
2. Subプロシージャーの記載
問題1の処理は、「Subプロシージャ」で記載します。
「Subプロシージャ」の作成は簡単です。作成する名前を「KAEDE」とすると、
と記載します。
本当であれば「End Sub」というのを記載しなければいけませんが、VBAでは「Sub KAEDE()」と記載すると、 自動的に「End Sub」というのを付けてくれます。
下記のような感じです。

参考:ボタンの付け方
マクロを作成した場合、上記のように実行ボタンを押して実行する方法もありますが、 ワークシートにボタンを設置してマクロを実行できるようにしておいた方が便利です。
Excel2007以降の場合は、下記のように「開発」→「挿入」で表示される「フォームコントロール」の「ボタン(フォームコントロール)」を選択してボタンを作成します。

ボタンを作成すると、「マクロの登録」画面が表示されますので、登録したいマクロを選択して登録します。

今回の学習内容は、VBAの基本的な操作でしたが、習得するだけで、仕事のスピードが変わってきますので、試してみて下さい。

