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

はじめに

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

HelloWorld

変数の利用

計算

Sub 計算()
Dim i As Double
Dim j As Double
  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

With文の基本形

With 重複しているメソッドやオブジェクト
…
End With

次のように複数のメソッドやオブジェクトを省略することもできる。

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

このようにIf文(後述)などの他の構文と組み合わせることもできる。

Sub 文字列の比較1完全一致()
Dim str As String
str = Range("A1").Value
   With Range("A2")
    If str Like "a" Then
        'A1セルに半角のaが入力されたとき
        .Value = "一致"
    Else
        'それ以外
        .Value = "一致しない"
    End If
   End With
End Sub

条件分岐

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

繰り返し

無限ループを作ってしまったらEscキーで強制終了しよう。

配列

ユーザー定義型の変数

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

関数の活用

ユーザー定義関数

グラフ

ピボットテーブル

ユーザーフォーム

デバッグ

エラー処理

Win32APIの呼び出し

その他

参考


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