2020/07/22

VBA初心者ガイド

## 1. VBAの基本構成とモジュールの種類

### プロジェクト構成要素

| モジュール種別 | 説明 |
|----------------|------|
| 標準モジュール(Module) | 一般的なマクロや関数を記述。再利用性が高く、複数のシートやフォームから呼び出せる。 |
| シートモジュール(Sheet1など) | 各ワークシートに紐づくイベント処理(例:セル変更時)を記述。挿入メニューには表示されず、既定で存在。 |
| ThisWorkbookモジュール | ブック全体に関するイベント(例:開いたとき)を記述。 |
| ユーザーフォーム(UserForm) | GUI(フォーム)を作成し、ボタンやテキストボックスなどの操作を可能にする。 |
| クラスモジュール(Class Module) | 独自のオブジェクトやプロパティを定義できる上級者向け構造。 |

## 2. 構文ルールと書き方の基本

| 項目 | 内容 |
|------|------|
| 命令の区切り | 改行が基本。複数命令は `:` で区切れる |
| コメント | `'`(シングルクォート)で記述 |
| 文字列 | `"`(ダブルクォート)で囲む |
| 行継続 | `_`(アンダースコア)で改行可能 |
| 大文字・小文字 | 区別されない(自動補正される) |
| 変数名 | 英数字と `_` が使用可能。予約語は不可 |

## 3. 定義・宣言構文

| 構文 | 説明 |
|------|------|
| `Sub マクロ名()` | マクロの定義 |
| `Dim 変数名 As 型` | 変数の宣言 |
| `Const 定数名 = 値` | 定数の宣言 |

## 4. 制御構文(条件分岐・繰り返し)

| 構文 | 説明 |
|------|------|
| `If ... Then ... Else ... End If` | 条件分岐 |
| `Select Case 値` | 複数条件の分岐 |
| `For i = 1 To 10 ... Next i` | 回数指定のループ |
| `Do While 条件 ... Loop` | 条件付きループ |
| `Exit For / Exit Do` | ループの途中で抜ける |

## 5. よく使う命令(コマンド)

| 命令 | 説明 |
|------|------|
| `MsgBox "メッセージ"` | メッセージボックス表示 |
| `Debug.Print 変数` | イミディエイトウィンドウに出力 |
| `InputBox("入力促し")` | ユーザー入力を受け取る |
| `Call マクロ名` | 他のマクロを呼び出す |
| `Exit Sub` | 処理を途中で終了 |

## 6. Excelセル・シート操作

| 命令 | 説明 |
|------|------|
| `Range("A1").Value = "値"` | セルに値を代入 |
| `Cells(2, 1).Value` | 行列指定でセル操作 |
| `ActiveCell.Value` | 選択中のセルの値 |
| `Worksheets("Sheet1").Activate` | シートの選択 |

## 7. ファイル・ブック操作

| 命令 | 説明 |
|------|------|
| `Workbooks.Open "パス"` | ファイルを開く |
| `ActiveWorkbook.Save` | 現在のブックを保存 |
| `Sheets.Add` | 新しいシートを追加 |
| `Sheet1.Copy` | シートのコピー |
| `Kill "パス"` | ファイルの削除(注意) |

## 8. 実務で便利な補助命令

| 命令 | 説明 |
|------|------|
| `Application.ScreenUpdating = False` | 画面更新の一時停止(高速化) |
| `Application.Calculation = xlCalculationManual` | 自動計算の停止 |
| `Application.EnableEvents = False` | イベントの一時停止(安定化) |

0 件のコメント:

コメントを投稿

人気の投稿