初心者オサムシがExcelのマクロと戦う戦闘ブログである
by オサムシ
タグ:VBA ( 5 ) タグの人気記事
試験メモ【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エキスパート
ステートメント/マクロ基礎

ステートメント/マクロ基礎



マクロそのものを制御する命令がステートメント

例えばよく使うIf(条件分岐)やFor(繰り返し)など

他にざっと↓くらいあるという事なんだけど、正直ほとんどわからないので、詳しく書いている方がいらっしゃるので下にリンクを貼らせていただきます

If、For以外によく使うと思われるステートメントを下記リストにマーキングしました。
時間がかかるかもしれませんが、マークしたステートメントについて、これから一つずつ記事にしていきます。

AppActivate
Beep
Call
ChDir
ChDrive
Close
Const

Date
Declare
DefBool
DefByte
DefCur
DefDate
DefDbl
DefDec
DefInt
DefLng
DefObj
DefSng
DefStr
DefVar
DeleteSetting
Dim
Do~Loop
End

Erase
Error
Exit
FileCopy
For Each~Next
For~Next
Function

Get
GoSub~Return
Goto
If~Then~Else
Input #
Kill
Let
Line Input #
Load×UnLoad
Lock×UnLock
LSet
Mid
MidB
MkDir
Name
On Error
On~GoSub
On~GoTo
Open
Option Base
Option Compare
Option Explicit
Option Private
Print #
Private
Property Get
Property Let
Property Set
Public
Put
Randomize
ReDim
Rem
Reset
Resume
Return
RmDir
RSet
SavePicture
SetSetting
Seek
Select Case
SendKeys
Set
SetAttr
Static
Stop
Sub
Time
Type
While~Wend
Width #
With
Write #

リンクです
Office TANAKA - Excel VBAステートメント[目次]
VBAステートメント一覧|エクセル(Excel)・マクロ(VBA)・操作・関数、仕事を変えるエクセルの使い方
VB ステートメント一覧表 ← VBという事なのでVBAで全て適用されるか不明

まずはリアルタイムで勉強中の Select Case からいきます

次回、乞うご期待。osamushi

オサムシじゃーなる
[PR]
by 03musi | 2013-01-14 11:02 | マクロ 基礎
変数の型宣言/マクロ基礎

変数の型宣言/マクロ基礎



多くのプログラム言語で、変数のデータ型宣言が必須または推奨されてますよね

VBAの場合、型を宣言しないとバリアント型(Variant)が適用されます

バリアント型はテキストでも数値でも、更にはObjectでもOKというやつで、詳細はリストをつくったので参照してください

変数の型/VBA

型を宣言するメリットは、定義された変数のメモリの容量が決まるので「余計なメモリを消費しなくて済むということ」なんて、本にはよく書いてある

今は、PCのスペックが上がってきたので、上記のメリットと言われてもあまりピンとこない

それともこの宣言のおかげで体感できるほど処理が早くなったりするのかな。

あとは構文が長く複雑になったとき、文頭で変数を型宣言と共に整理しておくと、後々変更や訂正をするときに、理解しやすくなるということのようですね。

初心者のボクには"型宣言"という儀式はなかなか理解しにくいけど、何処を見ても推奨されているので、クセはつけておこうと思う。

ちなみに下記が型宣言の書式です

Dim 変数名 As Integer

そして型宣言で変数名を大文字にした場合、その後変数名を入力するとき、小文字で入力しても改行すると大文字に変換される。
つまり定数と同じような扱いになる←追記:「VBEの入力支援が使える」と言うのが正

これで入力ミスも多少防げるね

あっ。でも変数の先頭だけ大文字にしてしまうと、定数と見分けがつけにくくなるか。。

あえて2文字目のみ大文字にするとかどうかな。

hEnsu こんな感じ。自分では採用してみよう。

更に!

変数宣言の強制というのがある

モジュールの先頭行に Option Explicit と1行付け加える

すると、以下モジュール内で宣言されていない変数を使おうとするとエラーをはかれる

本当に長い構文になるときには変数管理が大事になってくるだろうからね。osamushi

オサムシじゃーなる
[PR]
by 03musi | 2013-01-06 13:19 | マクロ 基礎
inputbox/マクロ基礎

inputbox/マクロ基礎


マクロ基礎

msgboxの次はやっぱりinputboxですよね

ちょっとだけ複雑になる

inputboxは、ポップアップウィンドウで入力させた値を、変数にメモリする

ここではわかりやすく、入力値をそのまま表示させてみよう

VBEで下記コードを小文字入力

sub nyuryoku
kaesu = inputbox("入力するとそのまま表示") '戻り値を得たい場合は()を付ける。変数"kaesu"に入力値をメモリ
msgbox kaesu 'msgboxで変数"kaesu"の値を表示
end sub


スペルミスがなければ、関数の頭文字が大文字になる
Sub nyuryoku()
kaesu = InputBox("入力するとそのまま表示")
MsgBox kaesu
End Sub

マクロを実行
d0285354_22331644.jpg

テキストボックスに文字列を入力
d0285354_22344648.jpg

OKを実行すると入力した文字列が表示される
d0285354_22353825.jpg

msgboxで変数"kaesu"にメモリした値を表示する簡単なマクロでした。osamushi

オサムシじゃーなる
[PR]
by 03musi | 2012-12-11 22:45 | マクロ 基礎
msgbox/マクロ基礎

msgbox/マクロ基礎


やっぱりプログラムの基本は Hello world!(ハロー・ワールド) だよね

日本なので「こんにちは!」でも良いんだけど、プログラムの初心者本などには、これを表示させるのがまず最初に書いてあるね。

という訳でまずはマクロに最も簡単な仕事をさせてみよう

ExcelのマクロはVBAという言語で記述します

VBAとはVisual Basic for Applications

Windowsで使えるVisual Basicというプログラム言語のアプリケーション版。。つまりExcel専用のVBとも言える

VBAを扱えるエディタがVBE(Visual Basic Editor)

ちょっと前置きが長くなったけど、VBEを使って書きますよ

sub hello
msgbox "Hello world!"
end sub


すべて小文字で打つとスペルミスがなければ下記のように変わる


Sub hello()
MsgBox "Hello world!"
End Sub

実行してみた
d0285354_040688.jpg

まずはここからだね。

オサムシじゃーなる
[PR]
by 03musi | 2012-12-11 00:33 | マクロ 基礎


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

ファン

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

検索

タグ

その他のジャンル