初心者オサムシがExcelのマクロと戦う戦闘ブログである
by オサムシ
試験メモ【プロシージャ】/VBAエキスパート

プロシージャ



プロシージャ名の右に付く()はプロシージャ同士で値を渡す時に使う
詳しくは後の記事で。。

他のプロシージャを呼び出す
Call

Callは省略できますが明示的にした方が良いと思う

Sub sample1()
Range("A1").Value = "山田"
Call sample2
End Sub
Sub sample2()
Range("B1").Value = Range("A1").Value & "太郎"
End Sub

d0285354_0523532.jpg



Functionプロシージャ

SubではじまるプロシージャをSubプロシージャと言いますが、End Subで終わった後は何もしません

Functionプロシージャは、End Functionで終わった後、実行結果を呼び出し元に返します

Function プロシージャ名(受け取る値) As 返すデータ型

Sub sample3()
Dim i As Long
For i = 2 To 6
Cells(i, 2).Value = baika(Cells(i, 1).Value)
Next
End Sub

Function baika(genka As Single) As Long
baika = genka * 1.3
End Function

d0285354_17131365.jpg



オサムシじゃーなる
[PR]
# by 03musi | 2013-02-09 17:14 | 試験メモ/VBAエキスパート
試験メモ【デバッグ】/VBAエキスパート

デバッグ



デバッグモード

VBEのデバッグモードとは、実行中のマクロを一時停止した状態を指します
デバッグモード中に、一行ずつ命令を実行していく時はF8(デバッグメニューの「ステップイン」でも可)を押下
デバッグモードを終了する場合は、実行メニューから「リセット」を選択します

イミディエイトウィンドウ

①マクロ実行中に変数の値やプロパティの設定値を出力できる
Debug.Print
②ブレークポイントやStopステートメントで、マクロ停止中に任意の命令を実行できる
③値を取得し表示させたいときは、行頭に?をつける
④イミディエイトウィンドウでDimは使えない(変数宣言しなくてよい)

変数testの左から3文字だけ表示させる
a = Left(test,3)
MsgBox a

ウォッチウィンドウ

ウォッチウィンドウはあらかじめ仕掛けておいた式に従って、マクロを中断することができる
「式のウォッチ」を選択すると表示するだけですので、通常は「式がTrueのときに中断」もしくは「式の内容が変化したときに中断」を使う
d0285354_15505445.jpg


呼び出し履歴

エラー発生時、デバッグモードにして「表示」メニューから「呼び出し履歴」を選択すると、呼び出し履歴ウィンドウが開き、エラーが発生しているプロシージャを選んで「表示」ボタンを押すと、コードウィンドウに呼び出し元を表すマークが表示されます


オサムシじゃーなる
[PR]
# by 03musi | 2013-02-09 15:51 | 試験メモ/VBAエキスパート
試験メモ【シートとブック操作】/VBAエキスパート

シートとブック操作



ワークシート

シートの挿入
Worksheets.Add

挿入されたシートはアクティブになります

名前の定義
Worksheets("sheet1").Name = "名前"

削除
Worksheets("名前").Delete

確認メッセージ無しで削除
Application.Displayalerts = False
Worksheets("sheet1").Delete
Applecation.Displayalerts = True

アクティブでないシートのセル操作
Worksheets("sheet1").Range("A1").Copy Worksheets("sheet2").Range("B2")

ワークブック

ブックを開く
Workbooks.Open Filename:=("C:\Users\ユーザー名\Desktop\test.xlsm")

ブックの挿入
Workbooks.Add

ブックの上書き保存
Workbooks("Book1.xlsx").Save

別名保存
ActiveWorkbook.SaveAs "C:\test1.xlsx"

ブックを閉じる
Activebooks.Close

アクティブでないブックのセル操作(ファイルは開いている必要があります)
Sub test()
a = Workbooks("test.xlsm").Worksheets("Sheet6").Range("A1")
MsgBox a
End Sub


オサムシじゃーなる
[PR]
# by 03musi | 2013-02-09 14:25 | 試験メモ/VBAエキスパート
試験メモ【VBA基礎構文】/VBAエキスパート

VBA基礎構文



①オブジェクト式
(A)対象.様子 = 値
(B)対象.命令 オプション(引数名) := 値
②ステートメント
③関数

様子、状態=プロパティ
命令=メソッド
オプション=引数

変数

①Dim 変数名 As 変数の型 プロシージャ内で使用
②Private 変数名 As 変数の型 モジュール内で使用
③Public 変数名 As 変数の型 すべてのモジュールで使用

複数の宣言をする場合は「Dim a As String, b As String」の様に変数名をカンマで区切る

セルの操作

Range("A1") 'A1セル
Cells(1,2) 'B1セル

コピー
Range("A1").Copy Destination:=Range("B3") '「Destination:=」は省略可
Range("A1").Copy Range("B3")

ステートメント

If 条件1 Then
処理1
ElseIf 条件2 Then
処理2
Else
処理3
End If

For 変数 初期値 To 終了値 Step 2
処理
Next 変数

オサムシじゃーなる
[PR]
# by 03musi | 2013-02-09 13:35 | 試験メモ/VBAエキスパート
下方修正/VBAエキスパート受験
教科書も8割がた、すすんだのでVBAエキスパートの模試をやってみた

ん~~~正直難しい

ってなわけで。。。

下方修正します

2月受験は無理!

調べてみたらオデッセイ直営の"テスティングセンター"でちょくちょくやってるらしいので、来月に延ばします

ダラダラやるのがイヤだったので、ギリギリで受験しようかと思ったけど

思ったより難易度が高い

ベーシックから受ければ良いんだけど、お金も掛かるからね

とにかく1か月延ばします

目標!VBAエキスパート/スタンダード 3月受験一発合格!!よろぴく。osamushi

追記
コードにコメントを付加するとき視認性を考慮して // を使ってきたけど、これからは正式なBASIC流の ' を使います。
ちょっと見にくいけどね。osamushi

オサムシじゃーなる
[PR]
# by 03musi | 2013-02-09 12:55 | 日記


カテゴリ
試験メモ/VBAエキスパート
マクロ 基礎
マクロ 応用
Excel 基礎
Excel 応用
Office
日記
もくじ

ファン

フォロー中のブログ
初心者のためのOffic...
七里ヶ浜だより Lett...
はじめてのMac-Sup...
初心者のためのOffic...

検索

タグ

その他のジャンル