エクセル奮闘記-14 --- VBAの基礎まとめ-03
お元気でしょうか?
地元、大阪は昨日は暑かったですが、今日はだいぶマシです。
マイペースですがマクロの話の続きです。
---------------------------------------------------------------------
VBAコードを読む
コードを読む時は
「パターンA」の続きでパターンBからです。
パターンB
対象(オブジェクト).命令(メソッド) := 値
「どのように(オプション:引数)」なし
対象(オブジェクト).命令(メソッド) := 値
2)「どのように実行する(オプション:引数)」あり
対象(オブジェクト).命令(メソッド).オブジェクト(引数) := 値
VBAの基本ルール
・文字列を扱う時は「”」で囲う Sheeets(“Sheet1”).Name = “Sample"
・数値を扱うときは「”」で囲わない Columns("A:A").ColumnWidth = 21.75
withステートメント
※withを使って、同じことを2回書くのを省略できる。
※慣れるまでは2回書いても良い。 = 構文が短いから。
Selection.HorizontalAlignment = xlCenter
Selection.VerticalAlignment = xlCenter
↓
With Selection
HorizontalAlignment = xlCenter
VerticalAlignment = xlCenter
End with
継続文字
マクロのコードで1行が長くなるとスクロールが必要になるので、見にくい
「 _ 」 半角スペース+アンダーバーで区切る
長いコード
「,」で区切られて、「:=」が複数ある
※「:=」がある → パターンB
※パターンA 「=」は、「,」で区切らない
---------------------------------------------------------------------
マクロの動きを制御するなど特別な用途に使われる命令
・Subステートメント :プロシージャーをの宣言
・Dimステートメント :変数の宣言
・IFステートメント :条件分岐の宣言
・For Nextステートメント : 繰り返し処理の宣言
・Withステートメント :Withを使った省略の宣言
---------------------------------------------------------------------
4-3 関数
何かのデータを受け取って、決められた計算結果を返す仕組み
・VBA関数= 148個あるがほどんど使わない
・よく使うVBA関数 =計算結果のもとになるデータ(引数)を受け取るタイプ
関数(引数)
Msgbox(”aaa”) メッセージボックスに文字列を表示する
Ucase(”abc”) 大文字にする abc
Mid(”Microsoft”,3,2) 左から3文字目から2文字を取得する
Now() 現在時刻を取得する
※パターンBの引数とは違う
使い方
Sub macro4()
MsgBox UCase("a3")
End Sub
関数だけでオブジェクトがないので、オブジェクト式ではない → 「.」、「=」、「:=」もない
---------------------------------------------------------------------
4-4演算子
算術演算子
¥ 商を求める 「/」と同じ ※整数を返す
^ べき乗
Mod 余りを求める
比較演算子
<= 右辺が左辺以上 ※「=」の場所に注意
=> 左辺が右辺以上
<> 左辺と右辺が等しくない
Is 左辺のオブジェクトと右辺のオブジェクトを比較し、同じならTure、違うならFalseを返す
※使い方は保留
文字列結合演算子
& 文字列を結合する
+ 文字列を結合する ※使わない 10+10が1010になったり、20になったりするから
論理演算子
And
Or
Not
代入演算子
「=」 左辺に右辺を代入する
---------------------------------------------------------------------
今回はここまでです。
気が付いている人もいると思いますが、一度、自分でまとめたものをこちらにアップしています。
で、、、どうしても、ブログのページは見にくいので、ご迷惑をおかけしてると思います。特にパターンAとパターンBの話は自分では図にしてまとめてわかりやすくしました。
なので、この図はPDFで配布しようかと思っています。配布する環境が整ったら、またどこかで告知します。
※その際はこのページにもリンクを貼り付けます。
ということで今回は以上です。
エクセルで苦労しているみなさん、お互いがんばりましょうね。