sironekotoroの日記

Perl で楽をしたい

Excel VBA ベーシック 公式テキスト 4章

  • まぁ、先週思いっきり遊んだら、学修していた事が吹っ飛んだ訳だけど。
  • しかも、やったはずの範囲で見覚えのないものがあったり。
  • というか、うち、4章やって無いんじゃ・・・?
  • もっかいやり直し!
    • 焦る。けど、このまま見なかった事にして進む事も出来ないので、こつこつとやっていく事にする。

VBAの構文:オブジェクト式

  • 対象.様子 = 値
    • 対象の様子や状況を設定す
      • 操作の対象をオブジェクトと呼び、オブジェクトの様子をプロパティと呼ぶ
      • 操作が出来ないプロパティもあり、これは「読み取り専用のプロパティ」と呼ばれる
    • ex)
      • 山田.服の色 = 赤(山田くんに赤い服を着せる)
        • オブジェクト:山田の服
        • プロパティ:赤
      • ActiveCell.Value = 123(アクティブセルに123を代入する)
  • 対象.命令 オプション := 値
    • 対象に何らかのアクションを起こさせる
    • 対象に何らかのアクションを起こさせる命令をメソッドという
    • メソッドの実行に指定する条件やオプションを引数という
    • ex)
      • 山田.走れ
      • 山田.走れ 速度:=ゆっくり − オブジェクト:山田
        • メソッド:走れ
        • 引数:ゆっくり
      • Activecell.Delete Shift:=xlUp
        • アクティブセルの内容を削除して、上方向にシフトする
      • Activecell.Delete Shift:=xlToLeft
        • アクティブセルの内容を削除して、左方向にシフトする
    • 複数の引数を指定する場合には、カンマで区切る
      • ex)対象.命令 オプション1:=値1,オプション2:=値2
  • 「=」と「:=」の違いに注意する。

  • オブジェクトは階層構造を持つ

    • ex)Workbooks("Book1.xlsx").Worksheets("Sheet1").Range(“A1”).Value = 123
  • オブジェクトの集合をコレクションと呼ぶ
    • コレクションの名前は複数形になる
    • ex)
      • Worksheets("Sheet1")
      • Worksheets(1)
    • セルの場合には2つの方法がある − Range("セル")
      • ex) Range("A1")
      • Cells(行番号,列番号)
        • ex) Cells(1,1)
    • Rengeオブジェクトの集合がCellsコレクション

ステートメント

  • マクロの動きを制御するもの
    • ex)
      • Sub プロシージャの先頭に書くもの
      • Dim 変数を宣言
      • If 条件分岐
      • For Next 繰り返し処理

関数

  • Excelの関数と同じように、データを引数として受け取って計算結果を返すもの
    • ex)
      • UCase("vba") 小文字のアルファベットを大文字に変換する。返り値はVBAとなる
      • Mid(“Microsoft” , 3 ,2) 引数で指定した文字列の、指定した位置から、指定した文字列分の文字を返す。返り値はcr
      • Now() 現在時刻を返す

演算子

  • 算術演算子
    • +
    • -
    • / 小数点まで求める除算
    • ¥ 整数までの除算
    • *
    • ^ べき乗
    • Mod 二つの数値の序算を行い、そのあまりを求める
  • 比較演算子
    • =
    • <
    • <=
    • >
    • >=
    • <>
    • Is オブジェクト同士が等しいかどうかを比較する
    • Like パターンマッチングを使った文字列の比較
  • 文字列連結演算子
    • +
    • &
  • 論理演算子
    • And
    • Or
    • Not
    • Eqv
    • Imp
    • Xor
  • 代入演算子
    • =