23
1 この手引きは、『Microsoft ® Excel セミナーテキスト VBA入門編[2000/2002対応]』を 使ってセミナーを実施される講師の方に、ご参考にしていただきたい各情報(セミナー実施の 注意事項、所要時間、本文内容の補足)をまとめたものです。 より良いセミナーを行うために、この手引きがお役に立てば幸いです。 日経 BPソフトプレス セミナー実施時の注意 以下の点に注意して、セミナーを実施しましょう。 ●テキストに記載されている名称で説明すること(講師がテキストに記載されている名称と異 なる名称で説明すると受講者は混乱するため)。 ●受講者からの質問に対して自信のないことは即答を避け、調査後の折り返し回答を徹底する こと。 ●英数字の入力は、特に指示がない限り、半角で入力するよう説明すること。 セミナー実施前に、次の環境を確認しておきましょう。 ● Office アシスタント ……………………………………………………………………………… オフ ●ツールバーとメニュー ・ Excel 2000 の場合 [[標準]と[書式設定]ツールバーを横に並べて配置する]……………………………オフ [最近使用したコマンドを最初に表示する]…………………………………………………オフ ・ Excel 2002 の場合 [[標準]と[書式設定]ツールバーを2行に並べて配置する]………………………… オン [常にすべてのメニューを表示する]…………………………………………………………オン ●[標準]、[書式設定]ツールバーが表示された状態 ● Visual Basic のヘルプの機能を追加インストールした状態 ●プリンタをセットアップした状態 Microsoft ® Excel セミナー テキスト VBA 入門編 [2000/2002 対応] 講習の手引き

Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

Embed Size (px)

Citation preview

Page 1: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

1

この手引きは、『Microsoft® Excel セミナーテキスト VBA入門編[2000/2002対応]』を

使ってセミナーを実施される講師の方に、ご参考にしていただきたい各情報(セミナー実施の

注意事項、所要時間、本文内容の補足)をまとめたものです。

より良いセミナーを行うために、この手引きがお役に立てば幸いです。

日経BPソフトプレス

セミナー実施時の注意以下の点に注意して、セミナーを実施しましょう。

●テキストに記載されている名称で説明すること(講師がテキストに記載されている名称と異

なる名称で説明すると受講者は混乱するため)。

●受講者からの質問に対して自信のないことは即答を避け、調査後の折り返し回答を徹底する

こと。

●英数字の入力は、特に指示がない限り、半角で入力するよう説明すること。

セミナー実施前に、次の環境を確認しておきましょう。

●Officeアシスタント………………………………………………………………………………オフ

●ツールバーとメニュー

・Excel 2000の場合

[[標準]と[書式設定]ツールバーを横に並べて配置する]……………………………オフ

[最近使用したコマンドを最初に表示する]…………………………………………………オフ

・Excel 2002の場合

[[標準]と[書式設定]ツールバーを2行に並べて配置する]…………………………オン

[常にすべてのメニューを表示する]…………………………………………………………オン

●[標準]、[書式設定]ツールバーが表示された状態

●Visual Basicのヘルプの機能を追加インストールした状態

●プリンタをセットアップした状態

Microsoft® Excelセミナー テキストVBA入門編

[2000/2002対応]

講習の手引き

Page 2: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

2

セミナーの所要時間このセミナーテキストの標準セミナー時間は6時間です。

なお、各章、各節の時間は、「はじめに」に記載されている対象者で行った場合の目安です。

第1章 Excel VBAとは 15分

1.1 マクロとVBA 5分

1.2 マクロの構成要素について 5分

1.3 マクロセキュリティについて 5分

第2章 Visual Basic Editor 20分

2.1 Visual Basic Editorを起動するには 5分

2.2 Visual Basic Editorの画面について 5分

2.3 Visual Basic Editorを使うには 5分

2.4 Visual Basic Editorを終了するには 5分

第3章 マクロの記録による作成 35分

3.1 マクロの記録とは 10分

3.2 マクロを保存するには 5分

3.3 マクロを実行するには 5分

3.4 マクロを編集するには 10分

3.5 マクロを削除するには 5分

第4章 Visual Basic Editorでのマクロ作成 60分

4.1 標準モジュールを挿入するには 5分

4.2 プロシージャを作成するには 20分

4.3 エラーに対応するには 30分

4.4 モジュールを削除するには 5分

第5章 ワークシートやセルの操作 90分

5.1 オブジェクトとは 10分

5.2 セルを操作するには 40分

5.3 ワークシートを操作するには 40分

第6章 より高度な処理 80分

6.1 変数とは 10分

6.2 処理を繰り返すには 25分

6.3 条件に応じて処理を実行するには 45分

第7章 マクロの登録 60分

7.1 図形に登録するには 25分

7.2 ツールバーに登録するには 35分

Page 3: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

3

本文の注意点と参考情報本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考

としてください。

第1章 Excel VBAとは

1.1 マクロとVBA

VBAとは(p.2)

講習中に説明する必要はありませんが、VBA(Visual Basic for Application)と似たもの

でVisual Basic(VB)があります。

プログラミング言語には、Visual Basic、C、Javaなどさまざまな種類があります。VBA

はVisual Basicを基にして作られた言語です。

Visual BasicとVBAは基本的な文法が同じです。ただし、Visual Basicはコンピュータに

直接命令する言語で、Windowsがインストールされていれば実行できますが、VBAはアプ

リケーションに対して命令するため、Excelなどのアプリケーションがインストールされて

いないと実行することができません。

1.2 マクロの構成要素について

■プロシージャとは(p.3)

プロシージャの種類はSubプロシージャ以外にも "Functionプロシージャ" 、"イベントプロ

シージャ" などがありますが、本テキストでは取り扱いません。

■モジュールとは(p.3)

モジュールの種類は4種類ありますが、本テキストでは "標準モジュール" のみ説明しましょ

う。参考までに他のモジュールを紹介します。

・ユーザーフォーム

独自のフォームを作成するときに使用します。フォーム上には、コマンドボタン、テキスト

ボックス、コンボボックスなどを配置し、自由にデザインすることができます。

・クラスモジュール

新しいオブジェクトを作成するときに使用します。標準モジュールと同様に、マクロが保存

されているオブジェクトですが、適用範囲が限られています。

・Excelオブジェクト

ワークシートやグラフシートがあり、挿入しなくてもExcel側でシートを挿入すれば増えて

いきます。ボタンのクリックやシートの切り替えなどのユーザーが行う操作を "イベント" と

いいます。イベントに反応するマクロ(イベントプロシージャ)はこのオブジェクトモジュ

ールに記述します。

1.3 マクロセキュリティについて

2000:Excel 2000のセキュリティレベルについて(p.4)

Outlook電子メールセキュリティアップデートが適用されていれば、初期状態で[高]にな

るため、変更が必要です。

ヒント:デジタル署名について(p.4)

取得したデジタル署名を添付するには、Visual Basic Editorを起動し、署名するプロジェ

クトを選択して、[ツール]メニューの[デジタル署名]をクリックします。

[デジタル署名]ダイアログボックスの[選択]をクリックして、取得した証明書を選択しま

す。

操作:マクロセキュリティを変更する

Step3(p.5)

直接操作に影響しませんが、[信頼のおける発行元]タブの名称は、Excel 2000では[信

頼のおけるソース元]タブとなります。

Page 4: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

4

第2章 Visual Basic Editor

2.1 Visual Basic Editorを起動するには

■Visual Basic Editorとは(p.8)

Visual Basic Editorは "エディタ" という独立した1つのアプリケーションです。文書を作

成する時にはワープロソフトを使用しますが、プログラミングをする時にはエディタというア

プリケーションを使用します。Visual Basic Editorはプログラミングしやすいようにさまざ

まな機能が搭載されたエディタです。

操作:Visual Basic Editorを起動する

Step2(p.8)

1章のp.5の「操作:マクロセキュリティを変更する」でセキュリティレベルを "中" に変更

したため、マクロの警告メッセージが表示されたことを説明しましょう。

Step4(p.9)

時間に余裕があれば、[Visual Basic]ツールバーのボタンについて説明しましょう。「3.1

マクロの記録とは」では、[マクロの実行]ボタンと[記録終了]ボタンを使用します。

[Visual Basic]ツールバーの[セキュリティ]をクリックして、[セキュリティ]ダイアロ

グボックスを表示することもできます。

Step5(p.9)

Visual Basic Editorは、以前の使用状況によって表示されるウィンドウやウィンドウサイズ

が異なります。表示されているウィンドウやウィンドウサイズ、ツールバーの位置など、受講

者の画面を統一しましょう。

2.2 Visual Basic Editorの画面について

■Visual Basic Editorの主なウィンドウ(p.10)

Visual Basic Editorを起動すると、初期状態ではプロジェクトエクスプローラとプロパティ

ウィンドウのみ表示され、コードウィンドウは表示されません。ただし、ここでは実習用ファ

イルの状況に即し、一般的な3つのウィンドウについて説明しましょう。

時間に余裕があれば、次の内容も説明しましょう。

[標準]ツールバーの右端には、現在のカーソルの位置が表示されます。たとえばp.10の図

では、1行1桁目("Sub Macro1()" の "S"の前)にカーソルがあります。

コードウィンドウの上部右側にある[プロシージャ]ボックスには、現在のマクロ名が表示さ

れ、一覧には現在の標準モジュールに存在するマクロ名が表示されます。一覧からマクロ名を

選択すると、そのプロシージャ内にカーソルを移動することができます。

ヒント:ウィンドウの配置を変更する、ヒント:ウィンドウの幅を変更する(p.11)

ウィンドウの配置やウィンドウの幅は変更すると元の位置に戻すことができなくなることがあ

るため注意しましょう。変更してしまった場合には、再度講師が受講者の画面を確認するよう

にしましょう。

操作:ツールバーを表示する

Step2(p.12)

[デバッグ]ツールバーは「4.3 エラーに対応するには」で使用します。また、p.40の「ヒ

ント:[デバッグ]ツールバー」にあるように、[Sub/ユーザーフォームの実行]や[リセッ

ト]など、[標準]ツールバーと同じボタンを持ちます。

Page 5: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

5

2.3 Visual Basic Editorを使うには

ヒント:プロジェクトエクスプローラの表示/非表示を切り替えるには(p.15)

同様に、プロパティウィンドウも操作できます。閉じるボタンをクリックするとプロパティ

ウィンドウを非表示にすることができます。もう一度表示するには、[表示]メニューの[プ

ロパティウィンドウ]をクリックします。

2.4 Visual Basic Editorを終了するには

操作:Visual Basic Editorを終了する

Step2(p.18)

受講者の操作によっては、ブックを閉じるときに変更の保存の確認メッセージが表示される

場合があります。その場合は、保存しないで閉じましょう。

第3章 マクロの記録による作成

3.1 マクロの記録とは

■マクロの自動記録では記録されない操作(p.20)

マクロの自動記録では文字が確定された結果が記録されます。IMEの起動や変換途中の過程

は記録されません。

Excel 2000では、自動保存機能をオンにしている場合、マクロの自動記録で自動保存の操

作も記録されてしまいます。ただし、Excel 2000の自動保存はアドインのため、初期状態

では利用できない機能です。

③マクロの保存先(p.21)

・個人用マクロブック

個人用マクロブックに保存すると、Excelを終了するときに変更の保存の確認メッセージが

表示されます。

個人用マクロブックは、OSがWindows 2000/XPの場合、[Documents and Settings

¥<ユーザー名>¥Application Data¥Microsoft¥Excel¥XLSTART]フォルダの

PERSONAL.xlsとして保存されます。Excelを起動すると自動的に開かれるため、個人用マ

クロブックに保存したマクロは、Excelを使用している間いつでも実行することができます。

個人用マクロブックは非表示のブックです。ここに保存したマクロを編集するには、いった

んPERSONAL.xlsを再表示し、編集が終わったら再度非表示にして保存する必要がありま

す。

個人用マクロブックを削除するには、PERSONAL.xlsを削除します。ただし、このファイ

ルは隠しファイルのため、操作の前にファイルとフォルダの表示を変更する必要があります。

Visual Basic Editorのプロジェクトエクスプローラでは、PERSONAL.xlsを確認すること

ができます。

・新しいブック

新規ブックを作成してマクロを記録します。既存のブックに不必要なマクロが作成されない

ため安心です。

操作:マクロを記録する(p.21)

マクロの記録中に操作を間違えてしまうと、間違えた操作の内容も記録されてしまいます。

時間に余裕がある場合や操作に不慣れな受講者がいる場合には、あらかじめ記録する操作を

確認しましょう。

Page 6: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

6

Step12(p.24)

[ツール]メニューの[マクロ]-[記録終了]をクリックしてもマクロの記録を終了するこ

とができます。

ヒント:[記録終了]ツールバー(p.24)

マクロの記録中に[記録終了]ツールバーを表示すると、その手順も記録されてしまいます。

その場合には、Visual Basic Editorを起動し、コードウィンドウで次のステートメントを

削除します。

3.4 マクロを編集するには(p.29)

マクロの自動記録で作成されたステートメントを編集する理由として、ダイアログボックス

を使って設定すると既定値まで記述される点があります。

たとえば、[セルの書式設定]ダイアログボックスの[フォント]タブを使用して書式を設定

すると、変更しなかった項目もすべて記録されてしまいます。既定値は省略できるため、

VBAに慣れてくれば不要なステートメントを削除すると読みやすくなり、処理速度も速くな

ります。

ヒント:マクロの境界(p.31)

区分線の表示/非表示は変更できます。Visual Basic Editorで[ツール]メニューの[オプ

ション]をクリックし、[編集]の[プロシージャの区分線]チェックボックスで設定します。

第4章 Visual Basic Editorでのマクロ作成

4.1 標準モジュールを挿入するには(p.36)

1つの標準モジュールに複数のマクロが保存できます。分類する必要があれば、複数の標準

モジュールを用意するとよいことを補足しましょう。

また、この章では新しい標準モジュールを挿入し、そこにマクロを作成することも説明しま

しょう。

操作:標準モジュールを挿入する

Step3(p.36)

選択する場所は、実際には同一プロジェクト内であればプロジェクト名([VBAProject(メ

ッセージ表示.xls)])の下の階層でもかまいません。ただし、プロジェクト名を選択した方が

挿入先のプロジェクトを間違える心配が少なくなるため、ここではプロジェクト名を選択し

て挿入する方法で説明しましょう。

Step4(p.37)

挿入された標準モジュールの名前の番号は、1からの連番が割り当てられます。ただし、既

に標準モジュールが複数存在し、途中のモジュール番号が抜けている場合は、抜けているモ

ジュール番号が割り当てられます。

ヒント:複数のプロジェクトが表示されている場合には(p.37)

ボタンやメニューを使って標準モジュールを挿入する場合には、あらかじめ挿入先のプロジ

ェクトを選択しておく必要があります。

Application.CommandBars("Stop Recording").Visible = True

Page 7: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

7

4.2 プロシージャを作成するには

4.2.1 プロシージャを作成する

操作:プロシージャを作成する(p.38)

実習する前に、プロジェクトエクスプローラでモジュール "Module3" が選択されているか

確認しましょう。

Step1(p.38)

p.38の「ヒント:大文字、小文字の自動変換」を参照し、大文字、小文字を意識せずに入力

してもよいことを説明しましょう。VBAに定義されているキーワード、数値、空白は全角で

入力しても自動的に半角になります。

入力ミスがある場合は、エラーメッセージが表示されるか、大文字、小文字の自動変換が行

われません。大文字、小文字の自動変換については、p.40の「ヒント:自動構文チェック機

能」で説明しています。

今後、実習中に入力ミスなどのエラーがあるにも関わらず、原因がわからない場合は講師に

知らせるように指示しておきましょう。

Step2(p.38)

"Sub" と "End Sub" の文字の色が青色になっていることを補足しましょう。VBAのキーワ

ードには、青色で表示されるものがあります。

プロシージャは、Visual Basic Editorの[挿入]メニューの[プロシージャ]をクリック

するか、[ユーザーフォームの挿入]ボタンの一覧の[プロシージャ]で作成することもでき

ます。ただし、高度な知識を要する詳細設定が必要になるため、本テキストでは説明を省き

ます。

4.2.2 命令文を作成する

■VBA関数(p.39)

VBAではExcelに用意されている関数を "ワークシート関数" と呼びます。ワークシート関

数の中にはVBAで使用できる関数もあります。ただし、VBAで使用するには、次のように

ApplicationオブジェクトのWorksheetFunctionオブジェクトを指定する必要があります。

ワークシート関数をVBAで使用できるかどうかは、Visual Basicのヘルプ「Visual Basic

Editorで使用できるワークシート関数一覧」を参照すると確認できます。

■MsgBox(メッセージボックス)関数(p.39)

使用例を参照する際に、VBAでは、文字列はダブルクォーテーション(")で囲んで表現する

ことを補足しましょう。

MsgBox関数には、その他にも省略可能な引数があります。説明する必要はありませんが、

参考までに引数を紹介します。

Range("A1").Value = WorksheetFunction.RoundDown(9.27, 0)

Page 8: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

8

MsgBox関数に限らず、戻り値がある場合は引数全体をかっこで囲む必要があります。

VBAでは、複数の引数を記述する場合、引数どうしをカンマ(,)で区切ります。その際、引

数そのものは省略できても、引数を区切るカンマ(,)は省略できません。

引数の記述には次の2種類の方法があります。一般的に、②の方法は代入する値がどの引数

に対するものかわかりづらい場合に記述する方法です。

①各引数をカンマで区切り、構文どおりの位置に指定する

②各引数の名前を指定し、コロンと等号(:=)を使用して値を代入する

本テキストでは、6章のWorksheetsコレクションのAddメソッドで②の形式を使用してい

ます。

操作:MsgBox関数を利用する

Step1(p.40)

既定では、インデントは半角4文字分の間隔が空くように設定されています。Visual Basic

Editorで[ツール]メニューの[オプション]をクリックし、[編集]の[タブ間隔]ボック

スでインデントの文字数を変更できます。

プロシージャの始まり、終わりと命令文の区別がしやすくなるように、命令文にはインデン

トを設定することを説明しましょう。また、複数行のステートメントを入力した場合、コー

ドを入力してからVisual Basic Editorの[編集]ツールバーの[インデント]ボタンや

[インデントを戻す]ボタンでまとめてインデントを設定できることを補足しましょう。

Step2(p.40)

改行するとインデントの設定が次の行に引き継がれることを説明しましょう。

modorichi = MsgBox(prompt:="シート名を変更しますか?", Title:="確認")

modorichi = MsgBox("シート名を変更しますか?", , "確認")

書式 MsgBox(メッセージ, ボタン, タイトル, ヘルプファイル, コンテキスト)

引数 ボタン:表示されるボタンの種類と個数、使用するアイコンのスタイルを指

定します。ボタンとアイコンの種類はVisual Basicのヘルプを参

照してください。

タイトル:ダイアログボックスのタイトルバーに表示される文字列を指定し

ます。

ヘルプファイル:ダイアログボックスに状況依存のヘルプを設定するため

に、使用するヘルプファイルの名前を指定します。引数の

コンテキストと一緒に指定します。

コンテキスト:ヘルプトピックに指定したコンテキスト番号を表す数式を指

定します。引数のヘルプファイルと一緒に指定します。

使用例 modorichi = MsgBox( "シート名を変更しますか?", vbYesNo, "確認")

タイトルバーに "確認" を表示し、ダイアログボックス内に[はい]と[い

いえ]ボタンを表示します。ユーザーがボタンをクリックすると、ボタン番

号が返されるので、この値を変数modorichiに代入します。

Page 9: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

9

Step5(p.40)

メッセージはExcel画面で表示され、[OK]をクリックすると制御がVisual Basic Editor

に戻ることを補足しましょう。

本セミナーでは実習しませんが、実際に開発する際には、コードに対するコメントを記述す

るとよいことを補足しましょう。たとえば、マクロの先頭には使用目的や実行に関する条件

などを記述し、また、複雑な処理のステートメントにも処理内容を記述します。

ヒント:自動構文チェック機能(p.40)

既定では自動構文チェックを行うように設定されています。Visual Basic Editorの[ツー

ル]メニューの[オプション]をクリックし、[編集]の[自動構文チェック]チェックボッ

クスで変更できます。

4.2.3 入力支援を利用して命令文を作成する

操作:入力支援を利用する

Step1(p.41)

3行目のインデントされた位置にカーソルを移動するように指示しましょう。

Step2(p.41)

入力候補の一覧はカーソルを移動すると消えてしまいます。その場合はカーソルを戻し、再

度Ctrl+Spaceキーを押して再表示します。

入力候補の一覧は、その他に[編集]メニューの[プロパティ/メソッドの一覧]、ショート

カットメニューの[プロパティ/メソッドの一覧]、およびCtrl+Jキーを使って表示すること

もできます。

Step3(p.41)

日本語入力をオフにして入力するように指示しましょう。

Step5(p.42)

キーワードをEnterキーで確定すると、同時に改行されます。行末で確定する場合はEnter

キー、入力が続く場合はTabキー、と使い分けるとよいことを補足しましょう。

操作:クイックヒントを利用する

Step1(p.42)

既定では、クイックヒントはオンに設定されています。Visual Basic Editorの[ツール]

メニューの[オプション]をクリックし、[編集]の[自動クイックヒント]チェックボック

スで変更できます。

クイックヒントは、その他に[編集]メニューの[クイックヒント]、ショートカットメニュ

ーの[クイックヒント]、およびCtrl+Iキーを使って表示できます。

クイックヒントでは、入力したキーワードの次にくる引数が太字で強調されることを補足し

ましょう。

クイックヒントはカーソルを移動すると消えてしまいます。その場合は、再度 "Msgbox" の

後に半角スペースを入力すると再表示できます。

4.3 エラーに対応するには

4.3.1 エラーについて(p.43)

デバッグ作業を円滑に行うためのさまざまなデバッグ機能が[デバッグ]メニューや[デバ

ッグ]ツールバーに用意されています。論理エラーの位置を特定するのが困難な場合に、使

用するとよいことを説明しましょう。

Page 10: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

10

4.3.2 コンパイルエラーに対応する

操作:構文チェックで検出された、コンパイルエラーに対応する

Step2(p.44)

3章で説明したように、先頭がシングルクォーテーション(')で始まり、緑色の文字である

ステートメントはコメントであることを補足しましょう。

Step3(p.44)

↓キーを押して確定する方法は、p.42の「ヒント:その他の確定方法」で説明しています。

Step4(p.44)

文字列の後にダブルクォーテーション(")がない場合はエラーになりません。ステートメン

ト確定と同時にダブルクォーテーション(")が自動的に追加されます。

Step5(p.45)

MsgBox関数で表示させるメッセージ内容をあらかじめ確認しておきましょう。

Step6(p.45)

確定したときに、コンパイルエラーにならなかったことを強調しましょう。

操作:実行時に検出された、コンパイルエラーに対応する

Step5(p.46)

コンパイルエラーメッセージのより詳しい情報を調べるには、メッセージの[ヘルプ]をク

リックします。

実行時にエラーとなるのは、プロシージャ実行前にもう一度構文チェックが行われるからで

す。構文エラーがあればプロシージャ実行前で中断されます。

Step8(p.47)

MsgBox関数で表示させるメッセージ内容をあらかじめ確認しておきましょう。

4.3.3 実行時エラーに対応する

操作:実行時エラーに対応する

Step5(p.48)

実行時のエラーメッセージのより詳しい情報を調べるには、メッセージの[ヘルプ]をクリ

ックします。

Step6(p.48)

中断されたステートメントの直前のステートメントまで実行されていることを補足しましょ

う。

Step8(p.48)

MsgBox関数で表示させるメッセージ内容を確認しておきましょう。

4.3.4 論理エラーに対応する

操作:エラーの位置を特定する

Step1(p.50)

ステップ実行をする前に、まず、マクロ "論理エラー" の実行前の状態に戻すことを説明しま

しょう。

Page 11: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

11

Step6(p.51)

間違っていると思われるステートメントで実行を中断してからステップ実行することもでき

ます。実行を中断する位置を "ブレークポイント" と呼びます。

ブレークポイントを設定するには、中断したいステートメントの左、余白インジケーターバ

ーをクリックします。ブレークポイントを設定すると、余白インジケーターバーに茶色い丸

が表示され、ステートメントが茶色く反転します。

解除するには、再度ブレークポイントが設定されているステートメントの余白インジケータ

ーバーをクリックします。

Step8(p.51)

黄色く反転したステートメントの実行前で中断しているため、原因となったステートメント

は、中断した1つ前のステートメントであることを補足しましょう。

操作:論理エラーに対応する

Step1(p.52)

テキストのコード中の ":" はステートメントの省略を表しています。サンプルコードには実

際には2か所にColorIndexがあるため、修正位置を間違えないように注意しましょう。

Step3(p.52)

マクロ "論理エラー" を実行して確認する前に、マクロ "論理エラー実行前に戻す" を実行して、

表の書式をマクロ実行前の状態に戻すことを説明しましょう。

4.4 モジュールを削除するには

操作:標準モジュールを削除する

Step2(p.53)

エクスポートの確認メッセージで[キャンセル]をクリックすると削除を中止し、[ヘルプ]

をクリックするとメッセージ内容のより詳しい情報を確認することができます。

第5章 ワークシートやセルの操作

5.1 オブジェクトとは

5.1.2 プロパティ

■プロパティの値を取得(p.59)

プロパティの値を取得したら、MsgBox関数で表示させるなどステートメント内で使用する

か、6章で学習する変数などを利用して保管しておき、別のステートメントで使用すること

を補足しましょう。

ヒント:値を代入できないプロパティ(p.59)

値を代入できないプロパティかどうかは、ヘルプに記述してあることを説明しましょう。た

とえば、ワークシートの枚数を調べるWorksheetsコレクションのCountプロパティは、

値を代入できないプロパティです。

5.1.3 メソッド

ヒント:引数を指定できるメソッド(p.59)

引数を指定したメソッドは、6章で作成するマクロで使用します。時間に余裕があれば、

p.88 Step2のマクロ "シート名変更" のコード6行目、Worksheets.Add~を参照しまし

ょう。

5.2 セルを操作するには

■Range(レンジ)オブジェクト(p.60)

Rangeコレクションという概念はありません。複数のセルでもRangeオブジェクトで表記

することを強調しましょう。

Page 12: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

12

Excelでセルに "名前" が定義されていれば、セル範囲に指定することができます。名前はダ

ブルクォーティション(")で囲みます。

アクティブでないブックやワークシートのセルを操作するには、コンテナの概念を利用して

ブックやワークシートのオブジェクトをたどって指定するか、または、ブックやワークシー

トをアクティブにする必要があることを補足しましょう。ワークシートをアクティブにする

書式は、次の節(5.3 ワークシートを操作するには)で紹介します。

本テキストでは扱いませんが、1つのセルを指定するには、Cellsプロパティでも指定できま

す。Cellsプロパティだけでセル範囲や、セルに定義された名前の指定はできませんが、セル

番地を数値で指定することができるため、高度な使い方が可能です。詳しくはヘルプを参照

してください。

たとえば、Range("A5")を Cells プロパティで記述すると、列、行の記述が逆になり、

Cells(5,1)、または、Cells(5,"A")となります。

5.2.1 プロパティの値の取得と代入

■Value(バリュー)プロパティ(p.61)

本テキストでは、指定内容の "Rangeオブジェクト" は、p.60の「■Range(レンジ)オ

ブジェクト」を参照して指定することを表しています。

使用例を参照し、セルへ値を代入するときだけでなく、VBAでは文字列、日付、時刻の場合

は、ダブルクォーテーション(")で囲み、数値はそのまま記述することを説明しましょう。

操作:セルに入力されている値を取得する

Step2(p.62)

p.63の「ヒント:操作の対象」を参照し、マクロ実行前に操作対象となるシート "発注伝票"

がアクティブになっているか確認する必要があることを説明しましょう。

セルA1に "5月発注伝票" と入力されていることも確認しましょう。

Step4(p.62)

開いたブックには標準モジュールが用意されていないため、標準モジュールを挿入すること

を説明しましょう。

Step6(p.62)

アクティブなブックやアクティブシート以外のセルを操作する場合、VBAでオブジェクトを

指定するか、Excelでアクティブにする必要があります。ただし、セルそのものはRangeで

セル範囲を指定するため、アクティブにする必要がないことを補足しましょう。

MsgBox関数でプロパティの値を表示できることを説明しましょう。

操作:セルに文字列を入力する

Step4(p.63)

標準モジュールに複数のマクロを作成すると、マクロを区切る線が自動的に追加されること

を補足しましょう。

Range("合計金額")

Page 13: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

13

ヒント:Date関数(p.65)

VBA関数には、日付、時刻に関する関数が数多く用意されていることを補足しましょう。

時間に余裕があれば、Date関数はExcelの関数(ワークシート関数)のToday関数と同じ

値を返すことを補足しましょう。Excelの関数にもDate関数はありますが、使い方が異なり

ます。ワークシート関数とVBA関数とが同じ名前でも、中には操作内容が異なる場合がある

ため注意しましょう。

操作:セルに今日の日付を入力する

Step10(p.65)

セルB4の値を確認する際に、Date関数によって返された今日の日付が入力されていること

を強調しましょう。

5.2.2 メソッドの実行

■Select(セレクト)メソッド(p.66)

本テキストでは、指定内容の "Rangeオブジェクト" は、p.60の「■Range(レンジ)オ

ブジェクト」を参照して指定することを表しています。

1つのセルを選択する場合は、Activateメソッドでもセルを選択することができます。複数

セルを選択する場合にActivateメソッドを使ってもエラーにはなりませんが、VBAでは

Activateメソッドは単一オブジェクトにのみ使うように定められています。

■Copy(コピー)メソッド(p.66)

Copyメソッドではコピーのみ行い、Pasteメソッドを使って貼り付けることもできます。

その場合は、Copyメソッドでコピー元のみ指定します。

また、PasteSpecialメソッドを使うと形式を選択して貼り付けることができます。詳しく

はヘルプを参照してください。

その他、移動を行うには、Cutメソッドを使います。詳しくはヘルプを参照してください。

"離れた複数セルは指定できません" とありますが、実際は、Copyメソッドの引数のコピー元

のRangeオブジェクトのみ離れた複数セルの指定をして、コピー先のRangeオブジェクト

で単一セルを指定すればエラーになりません。ただし、通常は使用しない方法です。

操作:セルを選択する

Step1(p.66)

現在のアクティブセルを確認し、Selectメソッドで選択するセルではないことを説明しまし

ょう。

操作:セルをコピーする

Step8(p.68)

ワークシートのG列にはあらかじめ数式が入力されていることを説明しましょう。

5.3 ワークシートを操作するには(p.69)

グラフシートとワークシートをまとめて、シート全体を指す場合は "Sheetsコレクション"

と表現します。シートの種類の区別なく操作する場合に使います。

アクティブでないブックのワークシートを操作するには、コンテナの概念を使用してブック

のオブジェクトからたどって指定するか、または、ブックをアクティブにする必要があるこ

とを補足しましょう。

時間に余裕があれば、ブックをアクティブにする書式を紹介してもよいでしょう。

Page 14: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

14

・ブックをアクティブにする

5.3.1 プロパティの値の取得と代入

■Count(カウント)プロパティ(p.70)

CountプロパティはWorksheetsコレクションに対して使うことを強調しましょう。

■Visible(ビジブル)プロパティ(p.70)

本テキストでは、指定内容の "Worksheetオブジェクト" は、p.69の「■Worksheet(ワ

ークシート)オブジェクト」を参照して指定することを表しています。

VisibleプロパティはWorksheetオブジェクトに対して使うことを強調しましょう。

True、Falseの代わりに、定数xlSheetVisible、xlSheetHiddenを代入しても結果は同じ

です。ただし、この定数はExcel 2002で追加されたため、Excel 2000以前のバージョン

でマクロを実行する場合は、使用できません。

操作:ワークシートの枚数を取得する

Step1(p.70)

ワークシートの枚数も確認しておきましょう。

操作:ワークシートを非表示にする

Step1(p.72)

シートが非表示になったことが確認しやすいように、シート "発注伝票" をアクティブにして

おくことを説明しましょう。

Step4(p.72)

Trueは真(-1)を、Falseは偽(0)を表すキーワードです。画面上では青色の文字で表示

されています。

ヒント:Excelでシートの表示/非表示の状態を切り替えるには(p.74)

VBAでシートを非表示にしてもExcelで表示できてしまうため、実際に実務で使用する場合

には注意が必要です。シートの Vis ib le プロパティに定数 xlVeryH idden または

xlSheetVeryHiddenを代入して非表示にすると、Excelでシートの表示/非表示が切り替え

られなくなります。ただし、定数xlSheetVeryHiddenはExcel 2002で追加されたため、

Excel 2000以前のバージョンでマクロを実行する場合は、使用できません。

5.3.2 メソッドの実行(p.75)

VBAのメソッドでワークシートの選択を行うと、Excelでアクティブシートにする必要がな

いことを強調しましょう。

■Activate(アクティベート)メソッド(p.75)

本テキストでは、指定内容の "Worksheetオブジェクト" は、p.69の「■Worksheet(ワ

ークシート)オブジェクト」を参照して指定することを表しています。

ActivateメソッドはWorksheetオブジェクトに対して使うことを強調しましょう。

書式 Workbookオブジェクト.Activate

引数 Workbookオブジェクト:選択したいブックを指定します。

使用例 Workbooks("集計.xls").Activate

ブック "集計" をアクティブにします。

Page 15: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

15

ヒント:その他の選択方法(p.75)

ActivateメソッドとSelectメソッドの違いは、複数シートの選択です。Activateメソッド

では、複数シートの選択はできません。複数シートの選択はSelectメソッドを使います。詳

しくは、Visual Basicのヘルプを参照してください。

■Add(アド)メソッド(p.75)

AddメソッドはWorksheetsコレクションに対して使うことを強調しましょう。

注意:ワークシートの挿入場所(p.75)

Addメソッドには、省略可能な引数があります。引数を紹介しますので参考にしてください。

6章p.87の「操作:シート数が12枚より少なければワークシートを追加する」で作成する

マクロ "シート名変更" で使用します。

・Addメソッドの引数

上記の使用例は、使用する引数名を指定して値を代入する記述方法です。引数名を記述しな

い場合はWorksheets.Add , Worksheets(3), 9となります。ただし、引数名を指定した方

がわかりやすいため、一般的に引数名を記述します。

操作:ワークシートを選択する

Step1(p.75)

現在のアクティブシートは、Activateメソッドでアクティブにするシートではないことを説

明しましょう。

ヒント:オブジェクトの階層構造と指定方法(p.78)

オブジェクトの階層構造の全体図はヘルプ「Microsoft Excelのオブジェクト」で参照する

ことができます。

第6章 より高度な処理

6.1 変数とは(p.80)

本テキストでは、変数をDimステートメントで明示的に宣言する方法や、データ型について

の説明を省きます。

ヒント:変数の名前の付け方(p.80)

変数名は簡潔な名前を付けるように補足しましょう。また、2文字目以降には、数字、アル

ファベット、全角文字が入力できることを説明しましょう。ただし、日本語など、全角文字

で変数の名前を付けることができますが、入力に手間がかかるということもあり、一般的に

全角文字は使わないということも補足しましょう。

書式 Worksheets.Add Before, After, Count

引数 Before:シートの挿入場所をWorksheetオブジェクトで指定します。指

定したシートの左に挿入されます。

After:シートの挿入場所をWorksheetオブジェクトで指定します。指定

したシートの右に挿入されます。

Count:挿入するシート枚数を指定します。省略すると1枚挿入されます。

使用例 Worksheets.Add After:=Worksheets(3),Count:=9

3枚目のワークシートの右に9枚ワークシートを挿入します。

Page 16: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

16

時間に余裕があれば、名前の規則を説明する際に、具体例を挙げましょう。下記に例を示し

ます。

・アンダースコア(_)以外の記号やスペースは使えない。

(例)name.1

・先頭に数字やアンダースコア(_)は使えない。

(例)1name

同じような変数名を複数使いたいときは、記号ではなくname1、name2...と数値を後ろに

付けるようにしましょう。

・関数名など、VBAで既に定義されている単語は使えない。

(例)msgbox

VBAの定数(既に定められた名前の付いた値)の先頭に "vb" と "xl" が付くものが多いため、

これらの文字は変数名の先頭に使わないようにしましょう。

ヒント:文字列と変数を連結するには(p.80)

文字列と変数を "&" でつなぐときは、ダブルクォーテーション(")で囲む範囲に注意するこ

とを説明しましょう。誤って "&" や変数まで囲む場合があります。

操作:セルの値を変数に代入する

Step6(p.81)

マクロ "シート名変更" に入力するステートメントの処理内容を説明しましょう。

①1枚目のワークシートをアクティブにする

②変数shitenにセルA1の値を代入する

③文字列と変数shitenの値を連結してメッセージを表示する

6.2 処理を繰り返すには(p.83)

ループを行うステートメントは、本テキストで扱う "For...Nextステートメント" の他に "For

Each...Nextステートメント" と "Do...Loopステートメント" があります。

・For Each...Nextステートメント

配列やコレクションの要素に対して、要素がなくなるまで処理を繰り返す。

・Do...Loopステートメント

条件を指定して、条件が満たされるまで、または、条件が満たしている間に処理を繰り返す。

■For...Next(フォーネクスト)ステートメント(p.83)

カウンタの変数名は、一般的に "i" や "n" など短い名前を付けることを補足しましょう。また、

Nextの後のカウンタ変数は省略できることも補足しましょう。

引数の増加分に負の数値を指定すると、カウンタを減少させながら繰り返すことができます。

使用例を参考にし、繰り返し実行されるステートメントの中で、カウンタが使用できること

を説明しましょう。

ヒント:その他の引数(p.83)

"Exit For" を使用することができます。説明する必要はありませんが、参考までに紹介しま

す。

Exit Forステートメントを使うと、最終値とは関係なく状況に応じてループを終了できます。

一般的に、Exit Forステートメントは終了するための条件と組み合わせて使用します。

Worksheets(1).Activate ・・・・・・・・①

shiten = Range("A1").Value ・・・・・・・・②

MsgBox "支店名は「" & shiten & "」です" ・・・・・・・・③

Page 17: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

17

For...Nextステートメントはステートメントの中にFor...Nextステートメントを記述しネス

ト(入れ子)にすることができます。

操作:シート名の変更を3枚分繰り返す

Step2(p.84)

シート名やシート数の状態は、Visual Basic Editorのプロジェクトエクスプローラでも確

認できますが、本テキストではわかりやすくするため、Excelに切り替えて確認しています。

Step4(p.84)

入力するFor...Nextステートメントの処理内容を説明しましょう。また、Worksheetオブ

ジェクトのNameプロパティについてもp.85の「ヒント:Worksheetオブジェクトの

Name(ネーム)プロパティ」を参照して説明しましょう。

①ループが3回になるよう、カウンタに使う変数iの値を1から3に指定する

②変数iで何枚目のワークシートか指定し、変数shitenとカウンタの変数iと文字 "月" を結

合してシート名に代入する処理を繰り返す

③カウンタの変数iの値を1加算して、Forステートメントに戻す

For...Nextステートメント内の変数iを "1" と間違えずに入力するよう注意するように説明し

ましょう。また、メッセージ内容も忘れずに変更するように説明しましょう。

For...Nextステートメントの "For"、"To"、"Next" は青色の文字で表示されるキーワードで

す。

ヒント:WorksheetオブジェクトのName(ネーム)プロパティ(p.85)

本テキストでは、指定内容の "Worksheetオブジェクト" は、p.69の「■Worksheet(ワ

ークシート)オブジェクト」を参照して指定することを表しています。

本テキストではデータ型を特に意識してはいませんが、Nameプロパティの値は文字列型で

す。そのため、取得して返される値、代入する値は文字列型の値です。

For i = 1 To 3 ・・・・・・・・①

Worksheets(i).Name = shiten & i & "月" ・・・・・・・・②

Next i ・・・・・・・・③

書式 For カウンタ = 初期値 To 最終値 Step 増加分

ステートメント

Exit For

ステートメント

Next カウンタ

使用例 For i = 1 To 3

MsgBox i & "回目のメッセージ表示"

owari = MsgBox ( "終了しますか?",vbYesNo)

If owari = vbYes then

Exit For

End If

Next i

メッセージを表示する処理を3回繰り返します。"終了しますか?"というメ

ッセージで[はい]が選択されたときは、直ちにループを終了します。

Page 18: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

18

6.3 条件に応じて処理を実行するには(p.86)

条件分岐を行うステートメントは他に、Select Caseステートメントがあります。

・Select Caseステートメント

1つの条件に対して、複数の条件分岐ができる。

■If...Then...Else(イフゼンエルス)ステートメント(p.86)

If...Then...Elseステートメントはステートメントの中にIf...Then...Elseステートメントを記

述し、ネスト(入れ子)することができます。

書式には、ブロック形式と単一行形式があります。単一行形式は短く簡単な条件判断を行う

ときに使用しますが、本テキストでは、一般的によく使われるブロック形式のみ紹介してい

ます。また、ElseIf節を指定して複数の条件を指定することもできます。ElseIf節は複数使

用することができます。説明する必要はありませんが、参考までに書式を紹介します。

書式 ■単一行形式

If 条件式 Then 真の場合 Else 偽の場合

■ブロック形式

If 条件式 Then

真の場合

ElseIf ElseIfの条件式 Then

ElseIfの真の場合

Else

偽の場合

End If

引数 ElseIfの条件式:引数の条件式と同じように、条件式を指定します。

ElseIfの真の場合:引数のElseIfの条件式を満たす場合に実行させたい処理

を指定します。

偽の場合:ElseIf節を指定した場合には、条件式とElseIfの条件式共に満

たしていないときに処理を実行します。

使用例 If Range("C5") = "男" Then Msgbox "男性" Else Msgbox "女性"

セルC5の値が、"男" ならば "男性"、"男" でなければ "女性"とメッセージを

表示します。

If Range("E5") >= 70 Then

Msgbox "優"

ElseIf Range("E5") >= 50 Then

Msgbox "良"

Else

Msgbox "可"

End If

セルE5の値が、70以上ならば "優"、50以上70未満ならば "良"、50未

満ならば "可" とメッセージを表示します。

Page 19: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

19

条件式で使われる演算子です。

■比較演算子

演算子 意味 演算子 意味

< より小さい > より大きい

<= 以下 >= 以上

= 等しい <> 等しくない

■論理演算子

演算子 意味 使用例

Not 論理否定 Not(kazu >=2) 変数kazuが2以上でない

And 論理積 kazu >=2 And kazu <= 10 変数kazuが2以上かつ10以下

Or 論理輪 kazu <=3 Or kazu >=5 変数kazuが3以下または5以上

6.3.1 条件が真のときのみ実行

操作:シート数が12枚より少なければワークシートを追加する

Step2(p.88)

入力するIf...Then...Elseステートメントの処理内容を説明しましょう。また、Worksheets

コレクションのAddメソッドの引数についても、p.88の「ヒント:条件を指定してワーク

シートを挿入する」を参照して説明しましょう。

①"既存のシート数が12より小さければ" という条件式を指定する

②3枚目のワークシートの右に9枚のワークシートを追加する

③If...Then...Elseステートメントを終了する

For...Nextステートメントの引数の終了値を "12" に変更し忘れないように注意するよう説

明しましょう。

If...Then...Elseステートメントの "If"、"Then"、"Else"、"End If" は青色の文字で表示される

キーワードです。

なお、通常は現在のシート数との差分をブックに追加するように作成しますが、ここでの学

習目的である「条件式」のポイントを明確にするために、既存のシートが3枚という前提に

しています。

ヒント:条件を指定してワークシートを挿入する(p.88)

引数を2つ以上指定する場合は、カンマ(,)で区切ることを再度補足しましょう。

操作:シート数が12枚の場合の動作を確認する

Step6(p.89)

ブック "月別部門売上" は引き続き7章で使用するため、閉じないように説明しましょう。

6.3.2 条件の真偽に応じて処理を分岐

操作:パスワードチェック機能を作成する

Step3(p.91)

入力するIf...Then...Elseステートメントの処理内容を説明しましょう。また、InputBox関

数についても、p.92の「ヒント:InputBox(インプットボックス)関数」を参照して説明

しましょう。

If Worksheets.Count < 12 Then ・・・・・・・・①

Worksheets.Add After:=Worksheets(3), Count:=9 ・・・・・・・・②

End If ・・・・・・・・③

Page 20: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

20

①シート "パスワード" のセルB2の値を変数sheetPassに代入する

②"パスワードを入力してください" というメッセージボックスを表示して、入力された値を

変数inputPassに代入する

③変数sheetPassの値と変数inputPassの値が等しいか判断する条件式を指定

④真ならばシート "パスワード" を表示する

⑤真ならばシート "東京年間売上" を表示する

⑥Else節を指定して偽の処理を分ける

⑦偽ならば "パスワードが間違っています" とメッセージを表示する

⑧If...Then...Elseステートメントを終了する

"True"、"False" は青色の文字で表示されるキーワードです。

ヒント:InputBox(インプットボックス)関数(p.92)

InputBox関数には、その他にも省略可能な引数があります。説明する必要はありませんが、

参考までに引数を紹介します。InputBox関数は戻り値があるため、必ず引数をかっこで囲む

必要があることを説明しましょう。

sheetPass = Worksheets("パスワード").Range("B2").Value ・・・・・・・・①

inputPass = InputBox("パスワードを入力してください") ・・・・・・・・②

If sheetPass = inputPass Then ・・・・・・・・③

Worksheets("パスワード").Visible = True ・・・・・・・・④

Worksheets("東京年間売上").Visible = True ・・・・・・・・⑤

Else ・・・・・・・・⑥

MsgBox "パスワードが間違っています" ・・・・・・・・⑦

End If ・・・・・・・・⑧

書式 InputBox(メッセージ, タイトル, 既定値, 水平位置, 垂直位置, ヘルプ, コン

テキスト)

引数 タイトル:ダイアログボックスのタイトルバーに表示される文字列を指定し

ます。

既定値:テキストボックスに、既定値として表示する文字列式を指定します。

水平位置:画面の左端からダイアログボックスの左端までの水平方向の距離

を、twip 単位で示す数式を指定します。

垂直位置:画面の上端からダイアログボックスの上端までの垂直方向の距離

を、twip 単位で示す数式を指定します。

ヘルプ:ダイアログボックスに状況依存のヘルプを設定するために、使用す

るヘルプファイルの名前を指定します。引数のコンテキストと一緒

に指定します。

コンテキスト:ヘルプトピックに指定したコンテキスト番号を表す数式を指

定します。引数のヘルプファイルと一緒に指定します。

使用例 bumon = InputBox("部門名を入力してください", "部門名入力", "東京")

タイトルバーにタイトルを表示し、テキストボックスに既定値を割り当てます。

Page 21: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

21

操作:パスワードが一致した場合を確認する

Step3(p.92)

半角で入力するよう説明しましょう。

操作:パスワードが不一致だった場合を確認する

Step2(p.93)

条件が偽の場合の動作を確認する前準備として、再びシート "パスワード" とシート "東京年

間売上" を非表示にすることを説明しましょう。

Step14(p.94)

ブック "年間部門売上" は引き続き7章で使用するため、閉じないように説明しましょう。

第7章 マクロの登録

7.1 図形に登録するには

操作:図形に文字を追加する

Step5(p.98)

図形に文字列を追加するまでは、図形をクリックすれば選択ができますが、文字列を追加し

た後は、図形をクリックするとカーソルが表示され、文字列が選択されます。図形の外枠を

クリックするように補足しましょう。

Step8(p.99)

図形の選択の解除は、任意のセルをクリックするか、Escキーを押すことを補足しましょう。

操作:図形にマクロを登録する

Step2(p.100)

図形にマクロを登録すると、図形をクリックしてもマクロが実行されるようになり、図形の

選択ができません。図形を選択するには、Ctrlキーを押しながら図形をクリックするか、[図

形描画]ツールバーの[オブジェクトの選択]ボタンを使います。

7.2 ツールバーに登録するには

7.2.1 ボタンにマクロを登録する

操作:新規ツールバーを作成する

Step5(p.104)

作成した[パスワードチェック]ツールバーが[ユーザー設定]ダイアログボックスと重な

る場合があります。必要に応じて、移動するように説明しましょう。

次の操作でも[ユーザー設定]ダイアログボックスを使用します。閉じないように説明しま

しょう。

ツールバーの名前は、ツールバー上では確認できません。[ユーザー設定]ダイアログボック

スで確認するように説明しましょう。新規ツールバーの名前が間違っていた場合には、[ユー

ザー設定]ダイアログボックスの[ツールバー]の[名前の変更]をクリックして書き換え

ます。

操作:ツールバーにボタンを追加する

Step2(p.105)

間違えて異なるボタンを追加してしまった場合は、まずツールバーからボタンを削除し、再

度正しいボタンを追加し直します。

次の操作でも[ユーザー設定]ダイアログボックスを使用します。閉じないように説明しま

しょう。

Page 22: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

22

操作:ボタンイメージを変更する

Step1(p.107)

ツールバーのボタンイメージをコピーすることもできます。

①コピー元となるボタンを含むツールバーと[ユーザー設定]ダイアログボックスが表示さ

れていることを確認する。

②コピー元のボタンのショートカットメニューの[ボタンイメージのコピー]でコピーする。

③コピー先のボタンのショートカットメニューの[ボタンイメージの貼り付け]で貼り付け

る。

Step2(p.107)

ボタンイメージを元に戻すには、[ユーザー設定]ダイアログボックスを表示した状態で、対

象となるボタンを右クリックし、ショートカットメニューの[ボタンイメージを元に戻す]

をクリックします。

次の操作でも[ユーザー設定]ダイアログボックスを使用します。閉じないように説明しま

しょう。

操作:ボタンに登録したマクロを実行する(p.109)

[ユーザー設定]ダイアログボックスを閉じると、登録したマクロが実行できることを強調し

ましょう。

7.2.2 メニューにマクロを登録する

操作:ツールバーにメニューを追加する

Step6(p.111)

追加する位置を間違えた場合には、[ユーザー設定]ダイアログボックスを表示した状態で、

メニューコマンドをドラッグし、位置を移動します。

Step10(p.112)

次の操作でも[ユーザー設定]ダイアログボックスを使用します。閉じないように説明しま

しょう。

7.2.3 ツールバーをブックに添付する

操作:ツールバーをブックに添付する

Step3(p.115)

添付したツールバーをブックから削除するには、[ユーザー設定]ダイアログボックスで[添

付]をクリックして[ブックへのツールバーの登録]ダイアログボックスを表示します。[ツ

ールバーの登録]ボックス(Excel 2000の場合は[登録ツールバー]ボックス)の一覧か

ら削除するツールバーを選択します。[コピー]ボタンが[削除]ボタンに変わったことを確

認し、クリックします。

ブックに添付したツールバーに変更が生じた場合は、ツールバーを添付し直す必要がありま

す。その場合はツールバーをブックから削除し、再度添付し直します。

ヒント:ユーザー設定ツールバーの削除(p.115)

時間に余裕があれば、実際に[パスワードチェック]ツールバーを削除しましょう。セミナ

ーの後処理で[パスワードチェック]ツールバーを削除する手間が省けます。

Page 23: Microsoft Excel - 日経BP書店|トップec.nikkeibp.co.jp/msp/TXT/download/pdf/pass/exvban.pdf1 この手引きは、『Microsoft® Excel セミナーテキストVBA入門編[2000/2002対応]』を

23

Microsoft® Excel セミナーテキスト VBA入門編 [2000/2002対応]講習の手引き2003年5月12日 発行

2003年12月22日 第2版発行

著作・制作  日経BPソフトプレス

発   行  日経BPソフトプレス

東京都千代田区平河町2-7-1 〒102-0093

FAX (03)3221-6138

電子メール [email protected]

ホームページ http://www.nikkeibp.co.jp/MSP/

Copyright©2003 Microsoft Corporation, 日経BPソフトプレス