情報処理

情報処理
平成26年4月28日
笠井俊信
この授業の内容
• Excelのマクロ,VBAについて実践的に学ぶ
– Excel2007以降を前提
• マクロ
– Excelにおける操作や計算を自動的に実行
• VBA(Visual Basic for Applications)
– プログラム言語(Visual Basic)を用いて自動処理
する操作や計算をExcelに命令
VBA利用の準備
Z:¥Macro
というフォルダを作成
Excel のオプションを開く
「ファイル」-「オプション」
Z:¥Macro
を追加
練習問題1
• マクロ記録(基礎)の作成と実行
– 絶対参照によるマクロ作成
• B2のセルに「はじめてのマクロ作成」と文字入力し,文
字の色を青に,セルの色を黄色に,セルの大きさを調
整する操作のマクロ
– 相対参照によるマクロ作成
• 指定したセルに・・・
オブジェクトについて
• VBAではExcelを構成するすべての要素・機能
– 例:ワークシート,セル,塗りつぶし色・・・
Application
Excel自身
Workbook
ワークブック
Worksheet
ワークシート
Range
セル,セル範囲
Interior
Font
階層オブジェクト構造
プロパティについて
• オブジェクトの形状やサイズ,色,動作形態な
どを設定する要素
– 例:
Range("A1").Value = "1月"
(Rangeの)プロパティ名
機能
RowHeight
セルの高さ
Value
セルの値
Hidden
行列の表示・非表示
Column
セルの列番号
Style
セルのスタイル
HorizontalAlignment
セル内のデータの表示位置(横位置)
メソッドについて
• オブジェクトを操作するために用意されたもの
– 例:
(Rangeの)メソッド
目的
Activate
セルをアクティブにする
AutoFill
オートフィルを実行する
AutoFit
セルのサイズをセル内容に合わせる
Clear
セルの内容・書式を消去する
Insert
セルを追加する
PrintOut
印刷する
練習問題2
• VB Editorで実際にマクロを作成してみる
– A列に1~12月の月名が入力されるマクロを作成
• オートフィル操作の実行
• 「月名入力」という名のマクロ
マクロ(プロシージャ)の作成
プロシージャ作成のルール
• 「Sub」で始まり,「End Sub」で終わる
• プロシージャの名前
– 名前の先頭は文字
– 名前に, (スペース), ., !, @, &, $, #は使えない
– 名前の長さは半角で255文字まで
– すでにVBで使われている関数やメソッドと同じ名
前は使えない
– 英字の場合,大文字と小文字は区別されない
セルへの操作
• セル → Rangeオブジェクト
• セルを参照 → Rangeプロパティ
– 具体的なオブジェクトを指定する方法
– 例:Range(“A1”)
• 代入処理
– “=”演算子 (数学の等号とは違う意味)
• 右辺を左辺に代入
– 例:Range(“A1”) = “1月”, Range(“A1”) = 12000
オートフィル操作のコード
• オートフィル操作に従ってコード化
– セルに連続する値を入力する
• Range(“A1”) = “1月”
Range(“A2”) = “2月”
– そのセルを選択
• Range(“A1:A2”).Select
・・・Selectメソッド(選択)
– 選択範囲の右端をマウスで任意の位置までドラッグ
• AutoFillメソッドを利用
– 選択範囲に対する処理命令 選択範囲:”Selection”プロパティ
– 出力先の指定 「名前付き引数」 Destination:=
– Destination:= Range(“A1:A2”)
メソッドの書式 表現方法
• AutoFillメソッドの例
• Object.AutoFill (Destination, Type)
– Object
• 元データのあるセル範囲をRangeプロパティで指定
– Destination
• オートフィルの書き込み先となるセル範囲をRangeプロ
パティで指定.元データのセル範囲も含む
– Type
• リストの種類を以下の定数で指定.省略可.
– xlFillDays, xlFillFormats, xlFillSeries, xlFillWeekdaysなど
– xlFillDefaults (既定値,省略時)
練習問題
• A1を開始セルとして横方向に曜日を入力する
オートフィルを実行するマクロを作成せよ
今日のコード