YENLAND TIME :  

 Top >  Library  |  印刷する印刷ページ       はてなブックマークに追加 このページを Google Bookmarks に追加 RSS

大区分

その他

中区分

PC

小区分

エクセル演習(中級)

項目

エクセルテスト(中級:第1回)

入力者 山下章太 更新日 20130823


業務上で、パソコンを使えるか使えないかで、作業効率が大きく変わってきます。
ここでは、当社で社員教育用に実施しているPCテストの一部を公開しています。

難易度も合わせて記載しますので、参考にして下さい。

テストの内容

難易度
ファイル エクセル
内容 基本的なマクロの使用
制限時間 5分

ファイルをダウンロード(ZIPファイル)



解説

ダウンロードすると、エクセルファイルが2つ入っています。
問題ファイル:pc_test_5.xls
解答ファイル:pc_test_5a.xls

簡単なマクロに関する問題です。これらを使えるかどうかで、大きく作業時間が変わってきます。



解説:問題に入る前に

まず、マクロを利用したことがない人のために、表示方法を解説します。
なお、ここで説明しているのは「マクロを記録」するようなタイプのものではなく、 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」とすると、

Sub KAEDE()

と記載します。

本当であれば「End Sub」というのを記載しなければいけませんが、VBAでは「Sub KAEDE()」と記載すると、 自動的に「End Sub」というのを付けてくれます。

下記のような感じです。

解説:問題1


問題1はマクロで基本的な繰り返し計算をする問題です。
繰り返し計算は、For〜Next構文で作成しています。

プログラム言語によって記載方法は微妙に違いますが、ほぼ同じです。
当サイトでも他のプログラム言語について記載していますので、興味があればご覧ください。
PHPのループ(繰り返し)処理

ループ(繰り返し)処理を行う構文は幾つかありますが、今回紹介するFor〜Next構文は、 指定した回数だけ繰り返すことができます。

実際のコードサンプルを元に説明すると、以下のように変数iを1から10まで移動しながら、A列のセルに入っている値に10を足して、 Bに出力するということを繰り返し(ループ)処理しています。

ここで、エクセルはセル操作をしていますが、セルを指定するためには、Cells(x, y)のように番号で記載します。

記載する順番はCells(行番号, 列番号)です。

For i = 1 To 10

Cells(i + 4, 2) = Cells(i + 4, 1) + 10

Next

For〜Next構文の特徴は、変数が1づつ増加して計算を繰り返していくという点です。 他のループ(繰り返し)処理を行う場合は、幾らずつ増加するかということを指定する必要がありますが、 For〜Next構文は指定の必要がありません。

解答例では、2つの方法で作成しています。

・data_calc1()

こちらの方法は、対象とする行数を取得して、その行数まで繰り返し(ループ)処理を行うというものです。
自動的に行数を取得して、変数で処理していますので、汎用性があります。

・data_calc2()

こちらの方法は、処理する回数をベタ打ちし、その回数まで繰り返し(ループ)処理を行うというものです。
ベタ打ちのため汎用性はありませんが、VBAを学ぶ上では比較的理解しやすい記載方法になっていると思います。

作成したマクロは、下記の実行ボタンを押して実行します。



参考:ボタンの付け方


マクロを作成した場合、上記のように実行ボタンを押して実行する方法もありますが、 ワークシートにボタンを設置してマクロを実行できるようにしておいた方が便利です。

Excel2007以降の場合は、下記のように「開発」→「挿入」で表示される「フォームコントロール」の「ボタン(フォームコントロール)」を選択してボタンを作成します。



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



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





   はてなブックマークに追加 このページを Google Bookmarks に追加 RSS