VBA

VBA
H106077 寺沢友宏
目次
 VBAとは
 マクロ
 変数の書き方
 プロシージャの書き方
 VBAの分岐命令
 セル(範囲)の指定
 MessageBox関数
 ActiveXコントロールを用いる
 課題
VBAとは
 Visual
Basic for Application の略称
 Microsoft 社 Office シリーズに搭載され
ている プログラミング言語
 同社からのVisual Basic派生した言語
 マクロを作成するための専用言語
 VBAはオブジェクト指向なのですが…
マクロ(マクロについて)
 マクロとは、Excel・Access
等の定型業務
(操作や計算)を自動的に実行してくれる
便利な機能
マクロを使う利点はいくつかあります。
マクロ(マクロを使う利点)
 複数の操作をひとつにまとめれる
例えば、エクセルだと三つのシートに異なる
色を塗るなど
 セルの内容によって処理を切り替えれる
 独自のユーザーインターフェイスが持てる
 低コストでアプリケーションの開発ができ
る
マクロ(マクロの記録)
(注意):セキュリティを中以下に
ツール→マクロ→新しいマクロの記録
ツール→マクロ→記録終了
変数の宣言
 変数の宣言
Dim 変数名 as 型名
型名…Boolean,Integer,Double,String
などなど
変数の宣言
 変数名を使う場合の注意
先頭は文字にする。
特殊記号は使わない 。(. ! @ & $ # など)
プロシージャの書き方
 Subプロシージャについて
Sub プロシージャ名(引数)
処理
End Sub
VBAの分岐命令

If文
If 条件式A Then
条件式A が正しい場合の処理
Else If 条件式B Then
条件式Bが正しい場合の処理
Else
どの条件にも当てはまらない場合の処理
End If
(注意):ThenはIfと同じ行に書くこと
VBAの分岐命令
 Select文
Select Case 条件式
Case 答えA
条件式の答えがAの場合の処理
Case 答えB
条件式の答えがBの場合の処理
End Select
VBAの分岐命令
 For-Next文
For 変数名 = 初期値 To 終了値
(Step 増減数)
繰り返し処理
Next 変数名
VBAの分岐命令
Do-While文
<前判定処理>
Do While 条件
繰り返し処理
Loop

<後判定処理>
Do
繰り返し処理
Loop While 条件
セルの指定
 Rangeプロパティを使って
“A5”などの形式でセルを指定
Worksheets("Sheet1") .Range("A5")
 Cellsプロパティを使って
行番号と列番号でセルを指定
Worksheets("Sheet1") .Cells(1,1)
セル範囲の指定
 Rangeプロパティを使って
Range(“A5”,”B9”) Range(“A5:B9”)
 Cellsプロパティを使って
Range(Cells(1,1), Cells(4,4))
MESSAGEBOX関数
 MessageBox
関数
Dim Ret As Integer ‘変数の宣言
Ret = MsgBox("終了しますか?",
vbOKCancel + vbExclamation, "終了確認
")
ACTIVEXコントロールを用いる
ユーザーフォーム
ACTIVEXコントロールを用いる
テキストボックスとコマンドボタン
ACTIVEXコントロールを用いる
ラベル
課題
 課題1
それぞれのボタンをクリックしたら、名前、学
籍、学年を並び替えるプログラムを作る。
課題
 課題2
文字(名前など)や数字(学籍など)を空い
てるセルに入力させるプログラムを作る。
課題
 課題3
成績という項目を作り、成績(S、A、B、C、
、Dの5段階)に応じて色をつけたり(例え
ばSなら赤、Aなら緑など)、消したりする
プログラムを作る。
課題
 課題4
好きなプログラムを作る。
追加のスライド
Dim i As Integer
For i = 1 To 10 Step 2
繰り返し処理
Next i
補足のスライド
プロパティ…オブジェクトがもっている属性の総称
 モジュール…一つのかたまりのことで、プログラムの機
能を部分的にまとめたもの
 プロシージャ…処理の一つのかたまり。
 コメントは’

補足のスライド
Range(“A1:A2”).Select
Selectメソッドの書式
Object.Select
補足のスライド
Range(“A1:A2”).Select
Selection.AutoFill Destination
:=Range(“A1:A12”)
の:=は名前付き引数といい。Destinationみたいにあらか
じめ名前が決まっているものを名前付き引数という。
AutoFillメソッドの書式
Object.AutoFill(Destination,Type)
補足のスライド
補足のスライド
Font.ColorIndex
FontオブジェクトのColorIndexプロパティ
WorkSheets(“Sheet1”).Range(“A1”).Font
ワークシートSheet1のセルA1のフォント
つまりWorkSheets(“Sheet1”).Range(“A1”).
Font.ColorIndex=5
の意味は?