今回はVBA入門編としてVBAの概要解説に加え、前々回の記事「エクセルでお絵かきパズル」で設定したVBAを例に、具体的なコードの記述方法を解説をしていきます。


そもそもVBAとは

VBAとは、Visual Basic for Applicationsの略で、オフィスソフト内で使用するプログラミング言語です。作成したプログラムを実行することで、処理や動作を自動化させることができます。
複数の動作を自動化させることで、入力作業のミスやムダを減らし、作業効率を向上させることができます。

VBAの基本構造

VBAは下記のような構造が基本になっています。

01_blog0714
文字の説明だと分かりづらいと思いますので、前々回の記事のVBAを例に解説します。

設定・準備

まずは、WPS Spreadsheetsの【開発ツール】タブから【コードの表示】をクリックします。
(※ 開発ツールは、WPS OfficeのGold Edition、Platinum Editionのみに搭載されています。)

02_blog0714
クリックすると、Visual Basicウィンドウが起動します。

03_blog0714

「お絵かきパズル」はシート毎にパズル問題を作成し、範囲や色設定も問題ごとに変えたいので、シートオブジェクトに記述します。これにより記述されたプロシージャはそのシート内でのみ動作するようになります。
①プロジェクトウィンドウの「Sheet1」をダブルクリックすると、②のプロシージャを記述するウィンドウが起動します。

04_blog0714

プロシージャ作成(コード記述)

【実現させる動作】
・表の範囲内でセルをダブルクリックしても「テキストの編集」にならない
・表の範囲内でセルをダブルクリックすると、そのセルのみ灰色で塗りつぶす
・もう一度ダブルクリックするとセルの色を赤色で塗りつぶす
・もう一度ダブルクリックすると塗りつぶしを解除する
これらの処理を上の画像の②にコードで記述していきます。

手順は、
1.変数の宣言
2.イベントの指定
3.処理内容の設定
の順でコードを記述していきます。

<変数の宣言>
まず、変数の打ち間違いを防ぐために、変数の宣言(ユーザーが設定した変数を明示する)を強制します。
モジュールの最前列に「Option Explicit」と入力するか、オプションメニューから「変数の宣言を強制する」の設定を有効にすることで利用することができます。

10_blog0714
<イベントの指定>
次に、プロシージャが自動的に実行されるイベント(きっかけとなる操作)とその範囲を指定します。
今回は、
・セルがダブルクリックされた時にVBAに通知する
・ダブルクリックしてもテキスト編集にならない
と指定します。

11_blog0714
<処理内容の設定>
最後に、イベントが通知された際に取るべき処理内容を記述します。
今回は、ダブルクリックする毎に色を変えたいので、複数の条件を同時に判定するステートメント(特別な動作に使われる命令)の中の「Select Caseステートメント」を使用します。

12_blog0714
ここまで完成したら、Visual Basicウィンドウは右上の×マークで閉じてください。
Spreadsheetsに戻って、設定できているか確認してみてください。

13_blog0714

おまけ

今回記述したVBAのコードはこちらになります。
Option Explicit
‘変数の打ち間違いを防ぐ為に、変数の宣言(ユーザーが設定した変数を明示する)を強制します。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
‘ダブルクリックすると動作が行われるよう設定

Cancel = True
‘ダブルクリックしてもテキスト編集にならない

If Target Is Nothing Then Exit Sub
‘対象になるセルがない場合は動作させない

Set Target = Intersect(Target, Range(“G5:W9”))
‘対象範囲はセルG5からW9まで

If Not (Target Is Nothing) Then
Select Case Target.Interior.ColorIndex
Case xlNone
Target.Interior.ColorIndex = 16 ‘ColorIndex = 16は灰色を表します。
Case 16
Target.Interior.ColorIndex = 3 ‘ColorIndex = 3は赤色を表します。
Case 3
Target.Interior.ColorIndex = xlNone ‘ColorIndex =xlNoneは色の解除を表します。
End Select
End If

End Sub


いかがでしたでしょうか?今回は、「ダブルクリックする度にセルの色を変える」設定を解説しました。
VBAを活用すれば、様々な動作を自動化することができます。興味を持った方はこの機会に学んでみてはいかがでしょうか?
次回は、7月19日(水)更新予定です。

キングソフトオフィス体験版

biz_wps_0705