マクロの自動記録で雛型作って適当に改造というお手軽さ。
一般企業の業務システムなんて殆ど何でも作れちゃうし!
でもトラブルの元になることもあったりする。

はじめに

VBAはMicrosoft Officeに搭載されている統合開発環境Visual Basic Editor(VBE)上で開発する。
コードはMicrosoft Excel 2003と2007で動かしているが2003以前でも2007以降でもたぶん動く。
バージョン間の互換性は高い。

HelloWorld

変数の利用

計算

Sub 計算()
Dim i As Single
Dim j As Single
  i = 3
  j = 2
  '加
  Range("D1").Value = i + j
  '減
  Range("E1").Value = i - j
  '乗
  Range("F1").Value = i * j
  '除
  Range("G1").Value = i / j
  '商
  Range("H1").Value = i \ j
  'あまり
  Range("I1").Value = i Mod j
  'べき乗
  Range("J1").Value = i ^ j
  '文字列結合演算子
  Range("k1").Value = i & j
End Sub

セルの操作

同一のオブジェクトに対して複数のプロパティを設定する

そのような場面ではWith文を使うと便利である。次のプログラムをWith文を使い書き換える

 Sub 設定()
   'セルの指定
   Range("A1:A10").Select
   'フォント
   'Selectionは相対参照の項で使ったActiveCellと同じで現在選択されているセルを参照する。
   'ただし複数セルを選択しているときActiveCellは先頭のセルしか参照しないので注意すること。
   '今回の場合、ActiveCellを使うとA1セルしか以下の設定が反映されない。
   Selection.Font.Name = "MS明朝"
   '太字
   Selection.Font.Bold = True
   '斜体
   Selection.Font.Italic = True
   '下線
   Selection.Font.Underline = True
 End Sub

with文を使うと以下のようになる。With~End With間のすべてのSelectionを省略することができる。

Sub 設定()
 'セルの指定
 Range("A1:A10").Select
 With Selection
   'フォント
   .Font.Name = "MS明朝"
   '太字
   .Font.Bold = True
   '斜体
   .Font.Italic = True
   '下線
   .Font.Underline = True
 End With
End Sub

条件分岐

条件(セルの中の値や計算の結果など)によって処理を分けたいときにはIf文やCase文を使う。

繰り返し

配列

ユーザー定義型の変数

ユーザーフォーム

ワークシートとブックの操作

変数の適用範囲

引数

関数の活用

ユーザー定義関数

グラフ

ピボットテーブル

デバッグ

エラー処理

Win32APIの呼び出し

参考


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS