(Microsoft Word - \220S\227\235\212w\202\314\202\275\202\337\202\314ExcelVBA.doc)



Similar documents
Microsoft Word - 第3章.doc

Microsoft PowerPoint - jouhou11vista.ppt [互換モード]

計算式の取り扱い

(Microsoft Word - Excel\211\236\227p2\217\315.docx)

2016 年 度 情 報 リテラシー 三 科 目 合 計 の 算 出 関 数 を 用 いて 各 教 科 の 平 均 点 と 最 高 点 を 求 めることにする この2つの 計 算 は [ホーム]タブのコマ ンドにも 用 意 されているが 今 回 は 関 数 として 作 成 する まず 表 に 三 科

<4D F736F F D208DEC90AC837D836A B81698F4390B394C5816A2E646F63>

目 次 1. 積 算 内 訳 書 に 関 する 留 意 事 項 1 ページ 2. 積 算 内 訳 書 のダウンロード 3 ページ 3. 積 算 内 訳 書 の 作 成 (Excel 2003の 場 合 ) 6 ページ 4. 積 算 内 訳 書 の 作 成 (Excel 2007の 場 合 ) 13

目 次 1 ご 使 用 の 前 に 1.1 動 作 環 境 1.2 セットアップ 方 法 2 使 用 方 法 2.1 起 動 方 法 2.2 操 作 方 法 効 果 音 設 定 アニメーション 設 定 スライドジャンプ 設 定 フラッシュカード 設 定

_責)Wordトレ2-1章_斉

医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート - 目 次 - < 第 1 章 > 共 通 事 項 説 明 医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート 目 次 1.1 本 システムの 注 意 点 入 力 項 目 について 基 本 情

Microsoft Word - 教科書VBA_第1章2013_.doc

文科省様式3-2集計オプションマニュアル

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

1. 表 から 値 を 抽 出 する 説 明 1.1. 表 から 値 を 抽 出 するための 関 数 について 説 明 します LOOKUP VLOOKUP HLOOKUP 関 数 は 検 索 値 に 対 応 する 値 を 検 索 値 を 含 む 一 覧 表 から 抽 出 し てくれる 関 数 です

研究者情報データベース

<4D F736F F D B68F918DEC90AC89898F4B899E977095D2816A2E646F63>

6.1 工 程 管 理 (ネットワーク 工 程 表 ) 159 VBA( 実 行 結 果 例 ) 出 力 結 果 シート 出 力 結 果 を 図 に 描 くと 下 図 のようになる. 図 6.3 ネットワーク 工 程 表 ( 出 力 結 果 より 作 図 )

返還同意書作成支援 操作説明書

5 セル B9 に=B8+1と 入 力 半 角 入 力 です 以 下 同 様 セル B9 をクリックし=(イコール) 入 力 後 セル B8 をクリックしても B8と 入 力 出 来 ます 6 B9 をクリック カーソルをセルの 左 下 に 持 って 行 き+ 記 号 になった 状 態 で クリック

入 札 参 加 資 格 申 請 システム 操 作 マニュアル 入 札 参 加 資 格 の 資 格 有 効 ( 変 更 ) 日 を 迎 えると 追 加 届 の 登 録 ができるようになります ( 入 札 参 加 資 格 申 請 の 定 時 受 付 では いずれかの 申 請 先 団 体 から 入 札 参

4 応 募 者 向 けメニュー 画 面 が 表 示 されます 応 募 者 向 けメニュー 画 面 で [ 交 付 内 定 時 の 手 続 を 行 う] [ 交 付 決 定 後 の 手 続 を 行 う]をクリックします 10

(Microsoft Word - Excel\211\236\227p7\217\315.docx)


縦 計 横 計 をSUM 関 数 で 一 度 に 計 算 する 縦 横 の 合 計 を 表 示 するセルが 計 算 対 象 となる セルと 隣 接 している 場 合 は 一 度 に 合 計 を 求 め ることができます 1 計 算 対 象 となるセル 範 囲 と 合 計 を 表 示 する セル 範

情報処理技能検定試験 表計算2級 手順書

Word 003 スキルブック 06 - オブジェクトの 利 用 0.Word で 作 る 表 : 行 幅 を 最 小 値 より 小 さく 設 定 する 3 表 の 左 右 のサイズを 適 宜 調 整 します Word で 表 を 作 成 するとき, 列 幅, 行 幅 ともに 基 本 的 に 自 由

ワープロソフトウェア

2 課 題 管 理 ( 科 学 研 究 費 補 助 金 ) 画 面 が 表 示 されます 補 助 事 業 期 間 終 了 後 欄 の[ 入 力 ] をクリックします [ 入 力 ]ボタンが 表 示 されていない 場 合 には 所 属 する 研 究 機 関 の 事 務 局 等 へお 問 い 合 わせく

年齢別人数計算ツールマニュアル

(Microsoft Word - Excel\223\374\226\3452\217\ docx)

d_cj01

Excel basics

<4D F736F F D208CA990CF96BE8DD78F918EAE82CC95CF8D >

<4D F736F F D AC90D1955D92E CC82CC895E DD8C D2816A2E646F63>

MetaMoJi ClassRoom/ゼミナール 授業実施ガイド

治 験 実 施 管 理 システム NMGCP 向 け Excel 形 式 プロトコール 作 成 手 順 書 V4.0.3 対 応 版 第 1 版 株 式 会 社 富 士 通 アドバンストエンジニアリング All Rights Reserved,Copyright 株 式 会 社 富 士 通 アドバン

2 科 学 研 究 費 助 成 事 業 のトップページ 画 面 が 表 示 されます [ 研 究 者 ログイン]をクリック します 掲 載 している 画 面 は 例 示 です 随 時 変 更 されます 3 科 研 費 電 子 申 請 システムの 応 募 者 ログイン 画 面 が 表 示 されます e

Microsoft Word - word_05.docx

かんたんQR

1

2 県 公 立 高 校 の 合 格 者 は このように 決 まる (1) 選 抜 の 仕 組 み 選 抜 の 資 料 選 抜 の 資 料 は 主 に 下 記 の3つがあり 全 高 校 で 使 用 する 共 通 の ものと 高 校 ごとに 決 めるものとがあります 1 学 力 検 査 ( 国 語 数

t検定

2.4 箇 条 書 のスタイルを 変 更 する 右 クリックして 箇 条 書 と 番 号 付 け を 選 択 する. あとは 少 し 遊 べば, このようなことをやりたい 人 は 理 解 できると 思 います 3 いろいろな 入 力 ワープロを 使 う 上 で 肝 心 な 点 は, 空 白 調 整

問 題 1 次 の 文 章 は 作 業 環 境 について 述 べたものである にあてはまる 適 切 なも のを 解 答 群 { }より 選 び その 記 号 で 答 えよ 設 問 1. < 図 1>はアプリケーションウィンドウの 一 部 である < 図 1>の1の 部 分 を < 図 1> という

1級 ワンポイント

<4D F736F F D C97F195CF8AB DEC90E096BE8F912091E6312E313294C52E646F63>

(Microsoft Word - \215u\213`\203m\201[\203g doc)

VLOOKUP関数,IF関数

3 3 定 期 考 査 の 達 成 率 (F 列 )を 計 算 します 達 成 率 は 中 間 考 査 (D 列 )と 期 末 考 査 (E 列 ) の 点 数 の 合 計 を 中 間 考 査 と 期 末 考 査 の 最 高 点 の 合 計 で 割 っても とめます F11 のセルをクリッ クし =

検 討 検 討 の 進 め 方 検 討 状 況 簡 易 収 支 の 世 帯 からサンプリング 世 帯 名 作 成 事 務 の 廃 止 4 5 必 要 な 世 帯 数 の 確 保 が 可 能 か 簡 易 収 支 を 実 施 している 民 間 事 業 者 との 連 絡 等 に 伴 う 事 務 の 複 雑

TIPS - 棚 割 りを 開 始 するまで Liteを 起 動 し 企 業 情 報 の 追 加 を 行 い 棚 割 を 行 う 企 業 の 追 加 をして 下 さい 企 業 情 報 の 追 加 時 に エラーメッセージが 表 示 された 場 合 別 途 TIPS トラブルが 発 生 した 場 合

名刺作成講習

AdobeReader(pdf)の 場 合 1) AdobeReader で 文 書 を 開 き [ ファイル ] > [ プロパティ ]を 選 択 します 2) [ ページサイズ ]の 値 を 確 認 します 3. 定 格 サイズかを 確 認 する 下 にある A 列 B 列 の 寸 法 一 覧

目 次 Ⅰ 集 計 支 援 ツールの 準 備 に 関 するQ&A 1 H27 集 計 支 援 ツール.zip ファイルを 展 開 して 作 成 した,1 ~4のフォルダはどのように 利 用 すればよいか? Ⅱ 必 要 なファイルの 準 備 に 関 するQ&A 1 解 答 回 答 状 況 ファイルや,

す 選 択 範 囲 を 移 動 する エクセルでは 選 択 したセル 範 囲 の 境 界 をドラッグして 移 動 するのに 対 して Calc では 選 択 範 囲 そのものをドラッグして 移 動 できます そのため マウスポインタの 位 置 合 わせが 少 し 簡 単 になっ ています ただし 1

<4D F736F F D C82CC8AEE91625F87542D F9182AB8AB782A68CE32E646F63>

Microsoft PowerPoint - KeySQL50_10g_vlo3.ppt

1.2. ご 利 用 環 境 推 奨 ブラウザ Internet Explorer Google Chrome(バージョン 32 時 点 で 動 作 確 認 済 み) Mozilla Firefox(バージョン 26 時 点 で 動 作 確 認 済 み) Safari 7

6 システムを 入 れているパソコンを 入 れ 替 えたいが どうしたらいいのか 元 のパソコンから 新 しいパソコンに 昨 年 度 入 力 データを 移 行 します 手 順 は 次 のとおりです 1 元 のパソコンでシステムを 起 動 して メニュー 画 面 から バックアップ リカバリ を 選

PowerPoint Presentation

スライドの 編 集 とリンク スライドのレイアウトやデザインが 決 まったら 文 字 の 編 集 をしたり スライドの 順 序 変 更 やリンク 設 定 をして 見 栄 えの 良 いプレゼンテーションを 作 成 しましょう ファイル MP05 完 成.ppt を 開 き 内 容 を 編 集 していき

(3) 小 単 元 の 指 導 と 評 価 の 計 画 小 単 元 第 11 章 税 のあらまし の 指 導 と 評 価 の 計 画 ( 四 次 確 定 申 告 制 度 抜 粋 ) 関 心 意 欲 態 度 思 考 判 断 技 能 表 現 知 識 理 解 小 単 元 の 評 価 規 準 税 に 関 す

Microsݯft Word - 91 forܠ2009November.docx

SXF 仕 様 実 装 規 約 版 ( 幾 何 検 定 編 ) 新 旧 対 照 表 2013/3/26 文 言 変 更 p.12(1. 基 本 事 項 ) (5)SXF 入 出 力 バージョン Ver.2 形 式 と Ver.3.0 形 式 および Ver.3.1 形 式 の 入 出 力 機 能 を


Microsoft Word - Excel2_Excel関数_2013.docx

続 に 基 づく 一 般 競 争 ( 指 名 競 争 ) 参 加 資 格 の 再 認 定 を 受 けていること ) c) 会 社 更 生 法 に 基 づき 更 生 手 続 開 始 の 申 立 てがなされている 者 又 は 民 事 再 生 法 に 基 づき 再 生 手 続 開 始 の 申 立 てがなさ

スライド 1

目 次 1.はじめに 書 式 の 説 明 表 紙 スケジュール 組 入 れ 基 準 併 用 禁 止 薬 併 用 注 意 薬 同 種 同 効 薬 医 師 モニタリング..

2016 年 度 情 報 リテラシー 変 更 された 状 態 同 様 に 価 格 のセルを 書 式 設 定 する 場 合 は 金 額 のセルをすべて 選 択 し [ 書 式 ]のプルダウンメニューか ら[ 会 計 ]を 選 択 する すると が 追 加 され 金 額 としての 書 式 が 設 定 さ

1 次 の 枠 で 囲 まれた 部 分 のデータを 入 力 しましょう 1データ 入 力 後 のセル 移 動 ア 下 方 向 への 移 動 は Enter キーを 使 います Enter イ 右 方 向 への 移 動 は Tab キーを 使 います Tab ウ 左 端 からデータを 入 力 し 右

関数の構造

Microsoft Word - 2.doc

Microsoft Office Excel2007(NO.2エクセル初級後編)

目 次 JAVIS Appli の 基 本 機 能... 3 JAVIS Appli について... 3 音 声 確 認 機 能 JAVIS Appli( 有 償 版 )の 機 能... 4 音 声 で 読 みの 確 認 をする... 4 辞 書 機 能... 5 単 語 を 登 録 する... 5

< F2D93648E718E868EC58B8F30332E6A7464>

Microsoft Word - 311Tools_END

untitled

1-1 一覧画面からの印刷

目 次 1. 論 理 関 数 IF IF の 概 要 論 理 式 の 種 類 等 号 不 等 号 具 体 的 な 使 い 方 ネスト 複 数 の 条 件 を 記 述...


ThinkBoard Free60 Manual

(Microsoft PowerPoint -

C.1 共 有 フォルダ 接 続 操 作 の 概 要 アクセスが 許 可 されている 研 究 データ 交 換 システムの 個 人 用 共 有 フォルダまたは メーリングリストの 共 有 フォルダに 接 続 して フォルダを 作 成 したり ファイル をアップロードまたはダウンロードしたりすることがで

Microsoft Word - 養生学研究投稿規定(改)

情報処理実習(工基3)

パソコンで楽チン、電力管理3169編

2 / 13 ページ 第 7 講 ビジネス 表 計 算 の 実 用 テクニック 7-1 ファイルを 開 く 第 6 講 で 保 存 したファイル internet.xlsx を 開 きましょう 数 式 が 表 示 されている 場 合 は 非 表 示 にしておきましょう 7-2 罫 線 A3:C4 A

事前チェック提出用現況報告書作成ツール入力マニュアル(法人用)

01_07_01 データのインポート_エクスポート_1

Microsoft Word - 第3章.doc

Microsoft Word - 203MSWord2013

はじめに 本 プログラムファイルは Windows 版 Microsoft Office Excel で 作 成 されています 動 作 環 境 などは 下 記 を 参 照 ください 動 作 確 認 環 境 [Excel] Microsoft Office Excel 2010 Microsoft O

4 参 加 資 格 要 件 本 提 案 への 参 加 予 定 者 は 以 下 の 条 件 を 全 て 満 たすこと 1 地 方 自 治 法 施 行 令 ( 昭 和 22 年 政 令 第 16 号 ) 第 167 条 の4 第 1 項 各 号 の 規 定 に 該 当 しない 者 であること 2 会 社

目 次 1. 大 学 情 報 データベースシステムの 使 用 方 法 について EXCEL 一 括 登 録 EXCEL ダウンロード 検 索 条 件 の 指 定 プレビュー EXCEL ダウンロード(データ 抽 出 あ

Taro-H19退職金(修正版).jtd

Microsoft Word - ML_ListManager_10j.doc


日 付 部 分 を 入 力 する 今 回 は 3 月 のカレンダーを 作 ります 3 月 は 水 曜 日 からはじまりますので 1 水 曜 日 第 1 週 目 にあたるセル D2 に 1 その 隣 の E2 に 2 と 入 力 しましょう と 入 力 したセル D2:E2 をドラッグして

第 4 部 数 値 表 現 による 思 考 表 1 関 数 関 数 名 称 表 記 意 味 合 計 =SUM(A2:A10) A2 から A10 までの 合 計 平 均 =AVERAGE(A2:A10) A2 から A10 までの 平 均 最 大 値 =MAX(A2:A10) A2 から A10 ま

Transcription:

資 料 心 理 学 における Excel VBA の 利 用 その1 VBA の 基 本 文 法 久 本 博 行 Applications of Excel VBA for the Psychology (1) VBA Programming Hiroyuki HISAMOTO Abstract An experimental systems in psychology using Excel VBA(Visual Basic Applications) is proposed, and the basic grammar of VBA is introduced. Key words: Excel VBA, Psychological Experiments, Programming 抄 録 Excel VBA(Visual Basic Applications)によって, 心 理 学 のコンピュータ 実 験 システムを 作 成 する ことが 提 案 され,その1として VBA の 基 本 文 法 が 紹 介 された キーワード:Excel VBA, 心 理 学 実 験,プログラミング 1

はじめに 現 在 心 理 学 の 実 験 にはコンピュータが 使 われることが 多 くなってきている これは,コンピュータ による 刺 激 提 示 や 提 示 時 間 の 制 御, 反 応 時 間 の 測 定 などが 容 易 なためである また,コンピュータ 上 で 実 験 が 行 われ,データが 収 集 されるとそのデータをすぐに 分 析 することができる,という 利 点 も ある コンピュータによる 心 理 学 実 験 システムとしては,Cedrus 社 の Super Lab が 有 名 であり 多 くの 実 験 で 用 いられている しかし,Super Lab は 高 価 で,システムは 柔 軟 性 に 富 むものであるがそれゆえ に 設 定 が 複 雑 である また,コンピュータによる 心 理 学 実 験 についての 著 作 は 数 多 く 発 表 されてい る( 田 中 1975, 吉 村 山 上 1983, 市 川 矢 部 1985, 野 沢 1986, 金 子 ら 1990,Dixon,M.R. & MacLin,O.H. 2003, 北 村 坂 本 2004, 水 野 りか 2004)が,この 中 で 1970 年 代 から 90 年 代 に 発 表 されたものは BASIC で 作 られたものがほとんどで,Windows に 対 応 していない Dixon & MacLin の ものは Visual Basic.Net が 必 要 であること, 北 村 坂 本 のものは Visual Basic6.0,HSP,Delphi とい った 各 種 のプログラミング 言 語 を 使 っているため 初 心 者 には 難 しく,さらに Visual Basic6.0 や Delphi の 開 発 環 境 が 必 要 である 水 野 は Web ブラウザ 上 で 動 く 心 理 学 実 験 システムを JAVA と Perl で 作 成 しているが,これは 開 発 環 境 はフリーで 入 手 しやすいのであるが,JAVA や Perl を 学 習 するのが 難 しいという 難 点 がある もちろん, 北 村 坂 本 や 水 野 らのプログラムをそのまま 利 用 するうえでは 問 題 はないのであるが, 同 様 なプログラムを 開 発 しようとすると 上 記 のような 障 害 がある したがって, 開 発 環 境 が 手 軽 に 手 に 入 り,プログラミングが 容 易 な 言 語 で 実 験 のシステムを 構 築 することが 多 くの 実 験 者 にとって 有 益 であると 考 えられる そこでフリーウェアではないが, 多 くの Windows システムにバンドルされており,プログラミングも 比 較 的 容 易 な Microsoft 社 の Excel の VBA(Visual Basic for Applications)を 使 い,いくつかの 心 理 学 実 験 用 ソフトやデータ 分 析 用 ソフトを 作 成 した これらは, 心 理 学 実 験 を 行 おうとするものが,そのままでも 使 えるが,さらに 自 分 の 実 験 向 きにプログラムを 改 良 したり,サンプルプログラムとして 利 用 できるようなものを 目 指 した 今 回 は その 1 として 自 分 で VBA のプログラミングが 可 能 になるように,VBA の 基 本 文 法 を 紹 介 する また, 今 後 は 錯 視, Stroop 効 果 などの 実 験 ソフトウェアや SD 法, 一 対 比 較 法 などの 刺 激 提 示 とデータ 収 集 用 ソフトウェア, 因 子 分 析 などのデータ 解 析 ソフトウェアを 順 次 発 表 していき たい なおこれを 読 むにあたり,Excel の 基 本 操 作 を 理 解 していることを 前 提 としている 2

1.Excel VBA の 操 作 1.1VBA とは VBA とは,Visual Basic for Applications の 略 で Microsoft 社 の Word,Excel,Access,Power Point といった Office 製 品 で 使 われるプログラミング 言 語 です VBA を 利 用 すると Office を 使 ったア プリケーション ソフトを 開 発 することができます ここでは,Excel のアプリケーションを 開 発 していき ますが,この 知 識 は 他 の Office 製 品 のアプリケーションを 作 る 時 にも 役 立 ちます 1.2マクロのセキュリティ Excel でマクロを 利 用 する 場 合 には,はじめにマクロのセキュリティ 設 定 をしなければなりませ ん マクロのセキュリティレベルを 変 えるには,[ツール]メニューをクリックし, 次 に[マクロ]をポイント し[セキュリティ] をクリックします 図 1.2.1 そうすると, 次 の 図 のようなセキュリティ 設 定 のダイアログボックスが 出 てきます 通 常,デフォ ルト( 既 定 値 )ではセキュリティレベルは 高 (H) に 設 定 されており, 自 分 で 作 成 したマクロを 実 行 す ることができません そこで,セキュリティレベルを 中 (M) にします そして, OK ボタンをクリックし ます この 状 態 ではまだセキュリティレベルは 変 わっていませんので,いったん Excel を 終 了 し,もう 3

一 度 Excel を 起 動 しなおします これで,セキュリティレベルの 変 更 が 完 了 しました 図 1.2.2 次 にマクロを 含 む Excel のファイルを 開 こうとすると, 下 図 のようなセキュリティ 警 告 が 出 ます そ のときは, 自 分 が 作 ったような 信 頼 できるマクロであれば マクロを 有 効 にする(E) をクリックしファイ ルを 開 きます 図 1.2.3 4

1.3Visual Basic Editor の 起 動 マクロを 作 成 するには,まずマクロを 作 成 するツール Visual Basic Editor( 以 下 VBE と 略 )を 起 動 します [ツール]メニューをクリックし,[マクロ] [Visual Basic Editor]の 順 でクリックします (Alt キーを 押 しながら,F11 を 押 しても VBE を 起 動 できます ) マクロを 作 る 他 のやり 方 として,Excel では マクロ 記 録 という 方 法 があります これは,マクロ に 行 わせたい 操 作 を 実 際 に 行 い,その 一 連 の 操 作 手 順 を 記 録 し,マクロとして 利 用 するものです これは 簡 単 にマクロが 作 成 できますが, 使 える 機 能 が 限 られているのでここでは 取 り 上 げません 図 1.3.1 5

1.4やさしい 入 門 では, 実 際 にプログラムを 書 いてみましょう 図 1.4.1 のような 形 のフォームを 作 り, はじめての プログラム というボタンをクリックすると, Hello World! と 表 示 されるようにします 1.4.1ユーザーフォームの 作 成 図 1.4.1 挿 入 ボタンから ユーザーフォーム を 選 び( 図 1.4.2),ユーザーフォームを 作 ります この 操 作 は 挿 入 メニューから ユーザーフォーム を 選 んでもできます 図 1.4.2 ここで 少 し,Visual Basic Editor の 画 面 ( 図 1.4.3)の 説 明 をしておきましょう プロジェクトエクスプロ ーラは,そのブックに 含 まれるオブジェクトやモジュールの 階 層 構 造 を 表 したものです プロパティウィンドウは, 選 択 されているオブジェクトのプロパティを 見 たり, 編 集 したりするためのも のです フォームウィンドウは,フォームを 編 集 するためのもので,ツールボックスはフォームに 貼 り 6

付 けるいろいろなコントロールを 用 意 しているものです ツールボックスが 非 表 示 の 場 合 は, 標 準 ツールバーのツールボ ックスボタンを 押 すと 表 示 されます 作 業 ウィンドウはヘ ルプを 表 示 します プロジェクト エクスプローラ フォームウィンドウ 作 業 ウィンドウ プロパティ ウィンドウ ツールボックス 図 1.4.3 Hello World! と 表 示 が 出 ている 部 分 は,テキストボックスと 呼 ばれるものです このテキストボッ クスをフォームに 貼 り 付 けます ツールボックスのテキストボックスをクリックし( 図 1.4.4),フォーム 上 で 適 当 な 大 きさになるようにドラッグします ( 図 1.4.5) 図 1.4.4 7

ドラッグ 図 1.4.5 次 に, 初 めてのプログラム というボタンを 作 ります このボタンのことをコマンドボタンといいます が,これをテキストボックスの 同 じ 要 領 で 貼 り 付 けます ツールボックスのコマンドボタンをクリックし ( 図 1.4.6),フォーム 上 で 適 当 な 大 きさになるようにドラッグします ( 図 1.4.7) 図 1.4.6 ドラッグ 図 1.4.7 8

次 に,フォームのタイトルバーに 表 示 されている 名 前 が UserForm1 となっていますので,これを やさしい 入 門 に,コマンドボタンには CommandButton1 と 表 示 されていますので,これを 初 め てのプログラム に 変 更 します まず,フォーム 上 でテキストボックスやコマンドボタンのないところならどこでも 構 いませんからクリ ックし,フォームを 選 択 状 態 にします そして 画 面 左 下 のプロパティ ウィンドウの Caption 欄 を や さしい 入 門 に 書 き 換 えます( 図 1.4.8) これでユーザーフォームのタイトルバーの 表 示 が UserForm1 から やさしい 入 門 に 変 わりました コマンドボタンについても 同 様 です コマンドボ タンを 一 度 クリックし, 選 択 状 態 にするとコマンドボタンのプロパティがプロパティ ウィンドウに 表 示 されますので, Caption 欄 を はじめてのプログラム に 書 き 換 えます( 図 1.4.9) プロパティでは, この 他 に 文 字 の 色,サイズ,そのオブジェクトの 幅, 高 さ, 背 景 色 などの 属 性 が 定 義 されています プロパティはこのようにいろいろな 属 性 を 定 義 しているもので,あるオブジェクトを 選 択 状 態 にすると, プロパティ ウィンドウにそのプロパティが 表 示 されるような 仕 組 みになっています なお,プロパティ を 変 更 するのは, 今 のようにプロパティ ウィンドウでもできますし,プログラムからもできます 図 1.4.8 図 1.4.9 9

1.4.2 プログラムの 作 成 で は, 次 に コ マ ン ド ボ タ ン を 押 す と Hello World! と 表 示 されるようにプログ ラムを 作 ってみます 先 ほど 作 った はじめてのプログラム と いうコマンドボタンをダブルクリックします ( 図 1.4.10) そうすると, 図 1.4.11 にある ようなコードウィンドウが 表 示 されます こ のコードウィンドウでコマンドボタンが 押 さ れたときの 動 作 を 記 述 します 図 1.4.10 Private Sub CommandButton1_Click( ) 図 1.4.11 と End Sub の 2 行 の 間 に TextBox1.Text = "Hello World!" と 入 力 します これで 出 来 上 がりです 10

図 1.4.12 プログラムの 詳 しい 説 明 の 前 に,このプログラムを 動 かしてみましょう ツールバーにある Sub/ユ ーザーフォームの 実 行 ボタンをクリックしてください( 図 1.4.13) そして, はじめてのプログラム のボタンをクリックしましょう Hello World! と 表 示 されましたか( 図 1.4.14) 図 1.4.13 図 1.4.15 図 1.4.14 もし,うまく 表 示 されなかったり,エラーが 表 示 された 場 合 は, 左 記 のプログラムとよく 見 比 べてく ださい 正 しく 実 行 できれば,リセットボタン( 図 1.4.15)を 押 して 停 止 します では,プログラムについて 説 明 しておきましょう プログラムの 1 行 目 は,このプログラムが CommandButton1 をクリックされたときの 動 作 を 定 義 しているプログラムであることを 示 しています 2 行 目 が 実 際 にテキストボックスに Hello World! を 表 示 している 部 分 です TextBox1.Text は TextBox1 というオブジェクトのなかの Text プロパティを 示 しており,=は 代 入 の 記 号 で,Text プロパ ティに""で 囲 まれた 文 字 列 の Hello World! を 代 入 しなさい,ということになります 文 字 列 を 指 定 11

するときには,""で 囲 むことになっており,""で 囲 まれた 文 字 列 はプログラムではなく,データとして 取 り 扱 われます 3 行 目 はこのプログラムの 終 わりを 示 す 部 分 です 1 基 本 文 法 ここでは,Excel Visual Basic for Applications(VBA と 略 )の 基 本 的 な 文 法 を 説 明 します VBA や Visual Basic の 文 法 をすでにご 存 知 の 方 は,この 章 をとばしていただいて 構 いません なお, 文 法 の 説 明 の 中 で [ ] で 囲 まれた 部 分 は, 省 力 可 能 であることを 示 しています 2.1 変 数 変 数 とはプログラム 中 で a,b などのように 名 前 がつけられた, 数 値 や 文 字 列 を 収 納 しておく 記 憶 領 域 です 変 数 の 名 前 のつけ 方 には 規 則 があります 名 前 の 先 頭 は 数 字 以 外 の 文 字 ( 英 字, 漢 字,ひらがな,カタカナ)で 始 めます 名 前 には 空 白 や&,#などの 記 号 (_アンダースコアを 除 く)を 使 うことはできません 名 前 は 255 文 字 ( 半 角 の 場 合 ) 以 内 でなければなりません Visual Basic の 関 数,ステートメント,およびメソッドと 同 じ 名 前 を 使 うことはできません 正 しい 変 数 名 の 例 a heikin 利 息 悪 い 変 数 名 の 例 1gakki 数 字 で 始 まっている abc@def @が 使 われている right Visual Basic に 同 じ 関 数 名 がある 12

2.2 データ 型 VBA で 取 り 扱 う 変 数 には, 表 2.2 のようなデータ 型 があります 通 常, 取 り 扱 うデータが 整 数 の 場 合 は,Integer 型 か Long 型 を, 実 数 型 の 場 合 は Single 型 か Double 型 を 使 います 金 銭 の 計 算 を 行 う 場 合 は,Currency 型 を 使 います 用 途 に 合 わせることと,その 変 数 型 で 表 現 できる 範 囲 を 考 え 合 わせてデータ 型 を 選 択 します データ 型 サイズ 説 明 表 2.2 データ 型 Byte(バイト 型 ) 1 バイト 0~255 の 整 数 Boolean ( ブ ー ル 型 ) 2 バイト True あるいは False のみです 数 値 をブール 型 に 変 換 す ると 0 は False で 0 以 外 の 値 は True となります また,ブ ール 型 の 変 数 を 数 値 に 変 換 すると True は-1,False は 0 となります Integer( 整 数 型 ) 2 バイト -32,768~32,767 Long( 長 整 数 型 ) 4 バイト -2,147,483,648~2,147,483,647 Single( 短 精 度 浮 動 小 数 点 数 型 ) Double ( 倍 精 度 浮 動 小 数 点 数 型 ) 4 バイト -3.402823E38~-1.401298E-45( 負 の 値 ) 1.401298E-45~3.402823E38( 正 の 値 ) 8 バイト -1.29769313486231E308~ -4.94065645841247E-324( 負 の 値 ) String( 文 字 列 型 ) 10 バイト+ 文 字 列 の 長 さ 4.94065645841247E-324~ 0~2GB 1.29769313486231E308( 正 の 値 ) Currency( 通 貨 型 ) 8 バイト -922,337,203,685,477.5808 ~ 922,337,203,685,477.5807 Decimal(10 進 型 ) 14 バイト 小 数 部 分 を 持 たない 数 値 の 場 合, -79,228,162,514,264,337,593,543,950,335 ~ 79,228,162,514,264,337,593,543,950,335 小 数 点 以 下 28 桁 の 数 値 の 場 合, -7.9228162514264337593543950335 ~ 13

7.9228162514264337593543950335 Date( 日 付 型 ) 8 バイト 西 暦 100 年 1 月 1 日 ~ 西 暦 9999 年 12 月 31 日 の 範 囲 の 日 付 と,0:00:00 ~ 23:59:59 の 範 囲 の 時 刻 Object(オブジェク 4 バイト オブジェクトを 参 照 するためのアドレスです ト 型 ) Variant(バリアント 型 ) 数 値 の 場 合 は, 倍 精 度 浮 動 小 数 点 数 型 と 同 じで, 文 字 列 の 場 合 は, 文 字 列 型 と 同 じです 2.1.2 変 数 の 宣 言 変 数 は 使 う 前 に 必 ず 宣 言 してから 使 うようにしましょう VBA では 変 数 は 宣 言 しなくても 使 えます が, 宣 言 してから 使 うようにした 方 が, 間 違 いを 発 見 しやすくなります 変 数 の 宣 言 には,Dim 文 を 使 います Dim の 構 文 は 以 下 の 通 りです Dim 変 数 名 [As データ 型 ] []で 囲 まれた 部 分 は 省 略 可 能 です 例 悪 い 例 変 数 を 使 う 場 合 に 必 ず 宣 言 を 必 要 とするように 強 制 するには,モジュールの 先 頭 で 次 のように 記 述 します Option Explicit この 宣 言 をしておくと, 宣 言 をせずに 変 数 を 使 うとエラーメッセージが 表 示 されます( 図 2.1.1) 例 え ば,タイプミスで 変 数 の 綴 りを 間 違 えた 場 合 でも,Option Explicit の 宣 言 をしておくと,タイプミスした 変 数 は 宣 言 されていないのでエラーになり,すぐに 見 つけることができます 14

図 2.1.1 2.4 定 数 一 般 的 には,プログラム 上 に 直 接 記 述 された 数 値 や 文 字 列 のことを 定 数 と 呼 びますが,ここでは ユーザーが 定 数 を 定 義 する 方 法 について 説 明 します ユーザーが 定 数 を 宣 言 する 場 合 は,Const キーワードを 使 います [Public/Private] Const 定 数 名 [As データ 型 ] = 値 例 VBA で 既 に 定 義 されている 定 数 もあります 非 常 に 数 多 くの 定 数 が 定 義 されていますので, 詳 し くは Help を 見 てください 例 なお, 比 較 的 よく 使 われる 円 周 率 については,PI()というワークシート 関 数 を 呼 び 出 すことで 3.14159265358979 という 値 を 得 ることができます 15

2.5 演 算 子 VBA で 使 われる 演 算 子 には, 以 下 のようなものがあります 表 2.5.1 演 算 子 の 一 覧 表 演 算 子 機 能 使 用 例 算 術 演 算 子 a=10,b=4 とすると + 2 つの 数 値 の 和 を 求 める a + b 14-2 つの 数 値 の 差 を 求 める a b 6 * 2 つの 数 値 の 積 を 求 める a * b 40 / 2 つの 数 値 の 商 を 求 める a / b 2.5 \ 2 つの 数 値 の 商 の 整 数 部 を 求 める a \ b 2 Mod 2 つの 数 値 の 割 り 算 の 余 りを 求 める a Mod b 2 ^ べき 乗 を 求 める a ^ b (a を b 乗 する) 10000 文 字 列 連 結 演 算 子 a="good ",b="morning"とすると & 2 つの 文 字 列 を 連 結 する a & b "Good Morning" + a + b "Good Morning" 比 較 演 算 子 a=5 b=8 とすると = 等 しい a = b False <> 等 しくない a <> b True < より 小 さい a < b True > より 大 きい a > b False <= 以 下 a <= b True >= 以 上 a >= b False Like 文 字 列 の 比 較 を 行 う a="good",b="g*" の 場 合 (*はメタ 文 字 ) a Like b は True Is オブジェクト 変 数 の 比 較 を 行 う Dim aobject,bobject Set bobject=aobject の 場 合 a Is b True 論 理 演 算 子 a=2,b=3,c=4,d=5 とすると Not 論 理 否 定 Not a = b True And 論 理 積 a <= b And c <> d True 16

Or 論 理 和 a = b Or c = d False Xor 排 他 的 論 理 和 a <= b Xor c <= d False Eqv 論 理 等 価 演 算 a <= b Eqv c <= d True Imp 論 理 包 含 演 算 a <= b Imp c >= d False 2.7 配 列 2.7.1 1 次 元 配 列 配 列 は,たくさんの 変 数 を 1 つの 変 数 名 で 利 用 できるようにしたもの,と 考 えることができます 線 形 代 数 のベクトルや 行 列 を, 思 い 浮 かべてもらってもいいでしょう 配 列 の 宣 言 は, 次 のように 行 います Dim 変 数 名 ( 要 素 の 初 めの 番 号 To 要 素 の 終 わりの 番 号 ) As データ 型 例 a (3) (4) (5) (6) (7) (8) b (0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) 要 素 の 初 めの 番 号 を 1 からはじめたい 場 合 には,モジュールの 先 頭 で 次 のように 書 きます Option Base 1 この 宣 言 で 配 列 要 素 の 先 頭 は,(1)から 始 まるようになります この 指 定 がなければ(0)から 始 まり ます 指 定 できるのは 1 か 0 しかありません 17

2.7.2 多 次 元 配 列 2 次 元 以 上 の 配 列 も 作 ることができます 例 (0) (1) (2) (3) (4) (5) (0) x(0,0) x(0,1) x(0,2) x(0,3) x(0,4) x(0,5) (1) x(1,0) x(1,1) x(1,2) x(1,3) x(1,4) x(1,5) (2) x(2,0) x(2,1) x(2,2) x(2,3) x(2,4) x(2,5) (3) x(3,0) x(3,1) x(3,2) x(3,3) x(3,4) x(3,5) (4) x(4,0) x(4,1) x(4,2) x(4,3) x(4,4) x(4,5) この 表 からも 分 かるように,2 次 元 配 列 の 宣 言 では Dim 変 数 名 ( 最 後 の 行 番 号, 最 後 の 列 番 号 ) という 形 になります また 3 次 元 以 上 の 配 列 も 利 用 することができます 次 元 数 の 最 大 値 は 60 です 例 配 列 の 要 素 数 の 最 大 値 は, 使 用 しているコンピュータのメモリの 容 量 によって 決 まります 上 限 を 超 えて 大 きな 配 列 を 宣 言 すると メモリが 不 足 しています ( 図 2.7.2)というエラーが 出 ます エラ ーが 出 なくても, 不 必 要 に 大 きな 配 列 を 宣 言 すると 実 行 速 度 が 極 端 に 低 下 しますので 注 意 しましょ う 図 2.7.2 18

2.7.3 動 的 配 列 必 要 な 配 列 の 大 きさが,プログラムの 実 行 時 にならないと 分 からない 場 合 にはどうすればいいの でしょうか そのような 場 合 には, 動 的 配 列 を 使 うことができます 動 的 配 列 は, 最 初 に 要 素 数 を 指 定 しないで 配 列 を 宣 言 しておき, 実 行 時 に 要 素 数 が 確 定 したと きに,その 配 列 を 再 宣 言 します 例 ReDim 文 の 構 文 は, 下 記 のとおりです この 文 は 配 列 の 大 きさや 次 元 数 を 変 えるために 何 度 でも 使 うことができます ReDim [Preserve] 変 数 名 ( 要 素 数 ) [As データ 型 ] ReDim 文 は Dim 文 とほぼ 同 じですが, 違 うのは Preserve というオプションを 指 定 できることです Preserve をつけると, 既 に 配 列 に 格 納 されているデータを 保 持 したまま 配 列 の 大 きさや 次 元 数 を 変 えることができます Preserve がない 場 合 は, 配 列 は 初 期 化 されます 2.8コメント コメントというのは,プログラムを 読 みやすくするために 記 述 する, 解 説 文 のことです コメント 文 は, プログラムの 実 行 には 何 も 影 響 を 与 えません プログラムを 作 成 している 時 点 では,よく 分 かってい るつもりでも, 後 で 読 み 返 すとどのような 処 理 をしているのかさっぱり 分 からない,というようなことが あります そのようなことを 防 ぐために,きちんと 分 かりやすいコメントを 書 く 習 慣 を 付 けましょう Rem あるいは '(シングルクォーテーション) に 続 く 文 字 列 は,コメントとみなされ, 緑 色 の 文 字 で 表 されます 例 19

2.9 継 続 行 プログラムの 1 行 が 非 常 に 長 くなると, 画 面 をスクロールしてみなければならず, 見 づらくなってし まいます そういう 場 合 は,1 行 のプログラムを 2 行 以 上 に 書 くことができます _( 半 角 の 空 白 とア ンダースコア) を 行 の 最 後 にすると, 次 の 行 と 続 いていて 同 一 の 行 とみなされます 継 続 行 例 2.10 条 件 判 断 条 件 判 断 とは, 変 数 の 値 などによってプログラム 中 の 処 理 を 変 えるような 操 作 をいいます コンピ ュータが 他 の 機 械 と 大 きく 異 なるのは,この 条 件 判 断 ができるところにあるのです 2.10.1 If 文 If 文 の 構 文 は 以 下 のような 2 通 りのものがあります If 条 件 式 Then 実 行 文 [ Else 実 行 文 EndIf ] If 条 件 式 Then 実 行 文 [ ElseIf 条 件 式 Then 実 行 文 [ Else 実 行 文 ] EndIf ] If のあとの 条 件 式 には, 比 較 演 算 子 や 論 理 演 算 子 を 使 って 答 えが 真 (True)か 偽 (False)である ような 式 か,あるいは Boolean 型 の 変 数 が 入 ります 条 件 式 の 答 えが 真 であれば,Then の 後 の 実 行 文 を 実 行 し, 偽 であれば 何 もしないか,Else の 後 の 実 行 文 あるいは ElseIf のあとの 条 件 式 の 評 価 を 行 います 例 20

: 次 は ElseIf の 例 ですが,ElseIf を 使 った 場 合, 注 意 しなければいけないのは If や ElseIf の 条 件 式 のうち 一 つでも 真 の 場 合 があれば,それ 以 降 の 条 件 式 については 判 定 を 行 わないことです 下 記 の 例 は tokuten が 80 以 上 なら seiseki に" 優 "を,70 以 上 80 未 満 の 場 合 は" 良 ",60 以 上 70 未 満 は" 可 ",60 未 満 は" 不 可 "を 代 入 するプログラムです ElseIf の 正 しい 例 下 記 の 誤 った 例 では, 最 初 に tokuten が 60 以 上 かどうか 判 定 され,60 以 上 の 場 合 は 全 て " 可 "なり,60 未 満 のものだけが" 不 可 "となってしまいます それは,ElseIf ではいづれかの 条 件 式 が 真 (True)となると,それ 以 降 に 記 述 されている ElseIf の 条 件 式 は, 評 価 されなくなるからです ElseIf の 誤 った 例 21

2.10.2 Select Case 文 す Select Case 文 は,ElseIf と 同 様 に 多 方 向 への 分 岐 を 行 う 制 御 文 です 構 文 は 以 下 のとおりで Select Case 式 1 Case 式 2 実 行 文 : 実 行 文 Case 式 3 実 行 文 : 実 行 文 Case 式 n : : : Case Else : : : EndSelect Select Case 文 の 式 1 には, 式 や 変 数 を 記 述 します この 式 1 と 式 2~ 式 n までで 等 しい 式 の Case に 続 く 文 を 実 行 します Case Else は 必 要 がなければ, 記 述 しなくてもかまいませんが, 想 定 外 の 値 が 出 た 場 合 Case Else に 跳 ぶようにしておくと 予 期 せぬエラーを 防 ぐことができます Else If で 用 いたものと 同 じ 例 を,Select Case で 記 述 してみましょう 下 記 の 例 は tokuten が 80 以 上 なら seiseki に" 優 "を,70 以 上 80 未 満 の 場 合 は" 良 ",60 以 上 70 未 満 は" 可 ",60 未 満 は" 不 可 "を 代 入 するプログラムです 例 1 のプログラムは 数 値 の 大 きいものから 判 定 しています それに 対 して, 例 2 のものは 数 値 の 小 さいものから 判 定 しています 例 3 は, 値 の 範 囲 を 指 定 して 分 岐 す るものです 22

ここで Is,To というキーワードが 使 われているのに 注 意 して 下 さい Is は 比 較 式 を 使 って 値 を 指 定 したい 場 合 に 使 います To は 最 小 値 と 最 大 値 を 指 定 し, 値 の 範 囲 を 示 したい 場 合 に 使 います 例 4 はもっとも 一 般 的 に 良 く 使 われる Select Case 文 の 使 い 方 です 例 1 例 2 例 3 23

例 4 2.11 繰 り 返 し 条 件 判 断 がコンピュータのコンピュータらしいところなのですが, 繰 り 返 しはコンピュータが 機 械 であることを 思 い 出 させてくれるところで, 同 じ 処 理 を 何 度 も 何 度 も 繰 り 返 し 実 行 していくところで す 2.11.1 For Next For Next は 反 復 回 数 が, 事 前 に 分 かっている 場 合 に 使 われる 繰 り 返 しの 方 法 です For Next は 次 のような 構 文 です For 変 数 = 初 期 値 To 終 値 [Step 増 分 ] 実 行 文 実 行 文 Next [ 変 数 ] 24

例 1 アクティブなシート 上 に 下 図 のようなデータがある 場 合,これらのデータを 1 次 元 配 列 の 変 数 に 代 入 するプログラムを 作 ってみましょう 図 2.11. 1 データの 表 例 2 次 にシート 上 に 下 図 のような 2 次 元 のデータがある 場 合,このデータを 2 次 元 配 列 に 代 入 するプ ログラムを 作 ってみましょう この 場 合 は,For Next の 繰 り 返 しを 二 重 に 使 います 図 2.11.2 データの 表 上 のプログラムでは, 外 側 の 繰 り 返 しで 初 めにjが 1 となり, 次 に 内 側 の 繰 り 返 しで i が 1,2,3,4, 5 と 変 わっていき,i が 5 までくると 内 側 の 繰 り 返 しが 終 了 し, 外 側 の 繰 り 返 しでjが 2 となります a(i,j) は 表 2.11.1 のように 変 化 していきます 25

表 2.11.1 繰 り 返 しの 値 の 変 化 繰 り 返 しの 回 数 j i a(i,j)の 値 1 1 1 1 2 1 2 2 3 1 3 3 4 2 1 2 5 2 2 3 6 2 3 4 なお, 例 1, 例 2 では Step 増 分 の 部 分 が 省 略 されています 省 略 された 場 合 の 増 分 は, 既 定 値 1 となります 次 のように 増 分 を 2 として,1 つ 飛 ばしに 指 定 したり, 負 の 値 を 指 定 し 大 きいものか ら, 小 さいものへと 繰 り 返 すこともできます 例 3 増 分 が 2 刻 みの 場 合 例 4 増 分 が 負 の 値 ここで, 例 1 と 例 2 で 出 てきた Cells というキーワードについて 説 明 しておきます Cells とは,ワー クシート 上 のセルの 属 性 (プロパティ)を 示 すもので,そのセルの 値, 大 きさ, 色,フォント,フォント サイズといったプロパティがあるところです シート 上 の 特 定 のセルのデータを 取 得 するには,Cells プロパティを 使 います Cells プロパティの 構 文 は, 下 記 のとおりです [オブジェクト 名.]Cells( 行 番 号, 列 番 号 ) オブジェクト 名 は, 通 常 はシート 名 が 入 りますが, 何 も 指 定 がなければアクティブなシートが 指 定 されたとみなされます また, 列 番 号 は 左 から 順 に 数 えた 場 合 の 列 番 号 を 指 定 します ですから, 26

列 A は 列 番 号 1, 列 B は 2, 列 C は 3 というように 指 定 します 例 2.11.2 Do Loop For Next 文 は, 繰 り 返 しの 回 数 が 分 かっている 場 合 に 使 いますが, 繰 り 返 しの 回 数 が 分 から ないが, 定 められた 条 件 式 が 真 の 間 繰 り 返 したり, 条 件 式 が 真 になるまで 繰 り 返 したりする 場 合, Do Loop を 使 います Do Loop には, 条 件 式 が 真 の 間 処 理 を 繰 り 返 す While 型 と, 条 件 式 が 真 になるまで 処 理 を 繰 り 返 す Until 型 があり,それぞれに 繰 り 返 しの 最 初 で 条 件 判 断 を 行 うものと 最 後 で 条 件 判 断 を 行 うものの 計 4 つのタイプがあります 繰 り 返 しの 最 初 で 条 件 判 断 を 行 う 場 合 は, 条 件 によってはその 繰 り 返 しが 1 回 も 実 行 されない 場 合 があるのに 対 して, 条 件 判 断 を 最 後 に 行 う 場 合 は,1 回 目 の 繰 り 返 しは 無 条 件 に 実 行 されるという 違 いがある 表 2.11.3 Do Loop の 4 つのタイプ 最 初 に 条 件 判 断 最 後 に 条 件 判 断 While 型 条 件 式 が 真 の 間 反 復 Do While 条 件 式 実 行 文 実 行 文 Loop Do 実 行 文 実 行 文 Loop While 条 件 式 Until 型 条 件 式 が 真 になるまで 反 復 Do Until 条 件 式 実 行 文 実 行 文 Loop Do 実 行 文 実 行 文 Loop Until 条 件 式 27

例 1 アクティブなシート 上 に 下 図 のようなデータがある 場 合,これらのデータを 1 次 元 配 列 の 変 数 に 代 入 するプログラムを 作 ってみましょう その 際,データがいくつあるか 分 からないが,データの 無 図 2.11.2 いセルがあれば,そこでデータは 終 わりにします While による 前 判 定 While による 後 判 定 Until による 前 判 定 Until による 後 判 定 28

2.12 その 他 の 制 御 文 2.12.1 GoTo 文 GoTo 文 は 無 条 件 に 分 岐 する 文 です 構 文 は 次 のような 形 式 で,GoTo 文 のあとに 記 述 されたラ ベルと 同 じラベルの 行 まで 制 御 が 移 ります GoTo ラベル ラベル: 例 1 下 記 の 例 では Cell の 値 が 負 のとき Negative というラベルの 行 まで 跳 びます ですから,Cell の 値 が 負 の 場 合 は,それ 以 降 の For Next は 実 行 されなくなります 2.12.2 Exit 文 For Next,Do Loop などの 繰 り 返 しから 途 中 で 抜 け 出 したり,Sub プロシージャや 関 数 プ ロシージャから 抜 け 出 す 文 です 構 文 としては, 以 下 の 5 種 類 があります 表 2.12.2 各 種 の Exit 文 文 説 明 Exit For* Exit Do* Exit Sub For Next の 繰 り 返 しから 抜 け,Next 文 の 次 に 制 御 が 移 ります Do Loop の 繰 り 返 しから 抜 け,Loop 文 の 次 に 制 御 が 移 ります Exit 文 を 含 む Sub プロシージャから 抜 け,その Sub プロシージャを 呼 び 出 し た 文 の 次 の 文 へ 制 御 が 移 ります Exit Function Exit 文 を 含 む Function プロシージャから 抜 け,その Function プロシージャを 呼 び 出 した 文 の 次 の 文 へ 制 御 が 移 ります Exit Property Exit 文 を 含 む Property プロシージャから 抜 け,その Property プロシージャ を 呼 び 出 した 文 の 次 の 文 へ 制 御 が 移 ります * 上 記 の Exit 文 のうち Exit For や Exit Do の 場 合, 二 重 以 上 の 繰 り 返 しの 中 で Exit 文 を 使 うとそ の Exit 文 を 含 む 最 も 内 側 の 繰 り 返 しから 抜 け 出 します 29

例 1 下 記 の 例 は 二 重 の 繰 り 返 しの 中 で Exit 文 が 使 われていますが,この 場 合 Exit 文 が 実 行 される と, 次 に 実 行 されるのは Next j の 文 です 外 側 の 繰 り 返 しまでは 抜 け 出 すことはありません ここへ 抜 け 出 す 2.13 Sub プロシージャ Sub 文 の 構 文 は 下 記 のとおりです Sub 文 は Sub プロシージャを 作 るときに 使 います Sub 名 前 ([ 引 数 1, 引 数 2,, 引 数 n ]) End Sub Sub 文 では,Sub プロシージャの 名 前 と 名 前 の 後 の( )が 必 要 です 引 数 リストは, 引 数 がなけれ ば 必 要 がありませんが,()はその 場 合 でも 必 要 です Sub プロシージャの 呼 び 出 し 方 法 には,2 通 りの 方 法 があります 1 つは Call 文 を 使 う 方 法 と 使 わ ない 方 法 です 例 下 記 のような Exampl1 という Sub プロシージャを 呼 び 出 します Call 文 を 使 った 呼 び 出 しでは, 引 数 を()で 括 る 必 要 があります VBA の Sub プロシージャは, 自 分 自 身 を 呼 び 出 す 再 帰 呼 び 出 しが 可 能 です 再 帰 呼 び 出 しの 例 は, 次 の Function 文 で 示 します 30

2.14 Function 文 Function 文 の 構 文 は 下 記 のとおりです Function 文 は Function プロシージャを 作 るときに 使 いま す Function プロシージャと Sub プロシージャの 違 いは, 戻 り 値 がありそれによって 呼 び 出 したプロ シージャに 値 を 戻 すことができるという 点 です もちろん,Sub プロシージャでも 引 数 を 使 うことによ って 値 を 戻 すことはできますが,Function プロシージャの 場 合 はそれ 以 外 に 戻 り 値 という 形 で 呼 び 出 したプロシージャに 値 を 戻 すことができるのです Function 関 数 名 ([ 引 数 1, 引 数 2,, 引 数 n ]) [As 型 ] [ 関 数 名 = 戻 り 値 ] End Function 例 1 階 乗 の 計 算 を 行 う 関 数 です Function プロシージャの 呼 び 出 しは, 下 の 例 のように 関 数 名 の 次 に()で 括 って 引 数 を 記 述 しま す 引 数 がない 場 合 でも()は 必 要 です 例 2 関 数 の 呼 び 出 し 方 例 1 の 関 数 を 呼 び 出 しています Function プロシージャも Sub プロシージャと 同 様 に, 再 帰 呼 び 出 しができます 再 帰 呼 び 出 しは, 自 分 自 身 を 呼 び 出 すものです 次 の 例 3 は, 例 1 の 階 乗 を 行 う 関 数 を 再 帰 呼 び 出 しの 形 に 書 き 換 えたものです 31

再 帰 呼 び 出 しは,プログラムの 実 行 効 率 から 考 えると 必 ずしも 良 くありませんが, 再 帰 呼 び 出 しを 使 ったほうが,よりわかりやすいプログラムになるアルゴリズムも 多 いので,うまく 使 い 分 ける 必 要 が あります 自 分 で 関 数 を 作 成 する 場 合 は,Function 文 を 使 いますが, 多 くの 便 利 な 関 数 が VBA で 用 意 さ れています また,ワークシートで 使 われる 関 数 の 一 部 は VBAの 中 で 利 用 することもできます ワー クシートで 使 われる 関 数 をワークシート 関 数 と 呼 びますが,その 使 い 方 は 標 準 の VBA 関 数 と 異 なり ます ワークシート 関 数 は 次 のような 形 で 呼 び 出 します Application.WorksheetFunction. 関 数 名 ([ 引 数 ]) 例 上 記 の 例 では,セル B2~B51 までの 数 値 の 平 均 を,ワークシート 関 数 を 使 って 求 めています このときに Range("B2:B51")は Range オブジェクトといい,セル 範 囲 を 指 定 するときに 使 います ワ ークシート 関 数 を 使 う 場 合 は, 必 要 になることが 多 いのでよく 覚 えておいてください 32

参 考 文 献 アスキー 書 籍 編 集 部 編 1999 Excel VBA 2000 リファレンス アスキー 東 京 Dixon,M.R. & MacLin,O.H. 2003 Visual Basic for Behavioral Psychologists. Context Press Reno 市 川 伸 一, 矢 部 富 美 枝 編 1985 パーソナル コンピュータによる 心 理 学 実 験 入 門 ブレーン 出 版 東 京 金 子 秀 彬, 吉 田 俊 郎, 伊 田 政 司, 森 山 哲 美 1990 心 理 学 に 必 要 なコンピュータ 技 術 北 樹 出 版 東 京 北 村 英 哉, 坂 本 正 浩 編 2004 パーソナル コンピュータによる 心 理 学 実 験 入 門 : 誰 でもすぐにでき るコンピュータ 実 験 ナカニシヤ 出 版 京 都 水 野 りか 2004 Web を 介 してできる 基 礎 認 知 心 理 学 実 験 演 習 ナカニシヤ 出 版 京 都 野 沢 晨 1986 パソコン BASIC 心 理 学 実 験 東 海 大 学 出 版 会 東 京 田 中 良 久 1975 BASIC 入 門 行 動 科 学 のためのコンピュータ プログラミング 入 門 東 京 大 学 出 版 会 東 京 吉 村 浩 一, 山 上 暁 1983 BASIC 入 門 ナカニシヤ 出 版 京 都 33