PR

Access VBA逆引き集|Array関数を使いこなしてコードをシンプルにする実践テクニックとCopilot活用術

VBA

Access VBAでシステム開発をしていると、

  • 複数の値をまとめて管理したい
  • フォームを一括初期化したい
  • CSVの列名を管理したい
  • 繰り返し処理を簡潔にしたい
  • 保守しやすいコードを書きたい

という場面が頻繁に発生します。

Array関数を活用すると複数データを簡単にまとめて管理でき、コード量を大幅に削減できます。

実際の業務システムでは、

フォーム初期化

入力チェック

CSV取込

項目管理

レポート出力

などでよく利用されています。

初心者でもすぐに使える便利な機能なので、早い段階で習得することをおすすめします。


スポンサーリンク

Array関数とは

Array関数は、

複数の値

↓

配列として管理

するための関数です。


基本構文

Array(値1, 値2, 値3)


サンプル

Dim arr

arr = Array( _

"東京", _

"大阪", _

"横浜")

結果

arr(0) = 東京

arr(1) = 大阪

arr(2) = 横浜

なぜArray関数が重要なのか

初心者が書きがちなコードです。

str1 = "東京"

str2 = "大阪"

str3 = "横浜"

管理が大変です。


Arrayなら

arr = Array( _

"東京", _

"大阪", _

"横浜")

だけです。


メリット

シンプル

保守しやすい

ループ可能

になります。


逆引き① 配列を作成したい

最も基本的な使い方です。

Dim arr

arr = Array( _

"A", _

"B", _

"C")

確認

Debug.Print arr(0)

結果

A

です。


逆引き② 全件ループしたい

実務で最も利用します。

Dim varItem As Variant

For Each varItem In arr

    Debug.Print _

    varItem

Next

出力

A

B

C


逆引き③ 件数を取得したい

配列サイズ取得です。

MsgBox UBound(arr) + 1

結果

3件

になります。


逆引き④ フォーム初期化したい

非常に実務的です。

Dim arr

arr = Array( _

"txtCode", _

"txtName", _

"txtAddress")

ループ

For Each varItem In arr

    Me.Controls( _

    varItem) = ""

Next

効果

一括クリアできます。


逆引き⑤ 必須項目チェックしたい

入力チェックです。

arr = Array( _

"txtCode", _

"txtName")

チェック

For Each varItem In arr

    If Nz( _

    Me.Controls(varItem), _

    "") = "" Then

        MsgBox _

        "未入力"

    End If

Next

CSV取込で活躍する

列管理です。


列名

arr = Array( _

"顧客コード", _

"顧客名", _

"住所")

利用

For Each varItem In arr

    Debug.Print _

    varItem

Next

CSV処理が整理できます。


実務活用例① 顧客管理システム

初期化処理です。

arr = Array( _

"txtCustomerCode", _

"txtCustomerName", _

"txtTel")

一括クリアできます。


実務活用例② CSV取込システム

取込対象項目です。

arr = Array( _

"顧客コード", _

"顧客名", _

"電話番号")

効果

項目管理を簡潔にできます。


実務活用例③ 設備管理システム

設備チェックです。

arr = Array( _

"設備番号", _

"点検日", _

"担当者")

必須確認に利用できます。


実務活用例④ SQL生成

検索条件管理です。

arr = Array( _

"顧客コード", _

"顧客名")

動的SQL作成に利用できます。


実務活用例⑤ レポート出力

出力列順です。

arr = Array( _

"顧客名", _

"売上金額", _

"担当者")

帳票設計と相性が良いです。


ArrayとCollectionの違い

初心者が迷うポイントです。


Array

固定データ向き


Collection

追加・削除向き


使い分け

固定リスト

↓

Array

件数変動

↓

Collection

です。


ArrayとDictionaryの違い

Array

順番管理

向き


Dictionary

検索

向き


実務

フォーム項目

↓

Array

重複チェック

↓

Dictionary

が定番です。


ベテラン開発者の定番パターン

フォームクリア処理です。

Dim arr

arr = Array( _

"txtCode", _

"txtName", _

"txtAddress")

For Each varItem In arr

    Me.Controls( _

    varItem) = ""

Next

非常によく見かけます。


Copilot活用術① 配列コード生成

Copilotへの依頼例です。

Access VBAです。

Array関数を利用して

フォーム初期化コードを

作成してください。


Copilot活用術② 入力チェック作成

Arrayで管理した項目を

必須チェックする

コードを作成してください。


Copilot活用術③ コードレビュー

Arrayを利用したVBAです。

改善案を提案してください。

保守性向上に役立ちます。


Array利用時の注意点

インデックスは0から

arr(0)

が最初です。


件数取得

UBound(arr)

を利用します。


要素追加できない

Arrayは固定です。

追加したい場合は

Collection

や

Dictionary

を利用しましょう。


Arrayが向いている処理

特に活躍するのは次の用途です。

  • フォーム初期化
  • 入力チェック
  • CSV列管理
  • レポート出力
  • 項目一覧管理
  • SQL条件管理

開発現場での利用頻度

順位用途
1位フォーム初期化
2位入力チェック
3位CSV列管理
4位帳票出力
5位SQL条件管理

初心者からベテランまで幅広く利用されています。


まとめ

Array関数はAccess VBAで複数の値を簡単に管理できる便利な機能です。

特に

  • フォーム初期化
  • 必須入力チェック
  • CSV取込
  • 項目管理
  • 帳票出力

などで大きな効果を発揮します。

まずは次のコードを覚えましょう。

arr = Array( _

"A", _

"B", _

"C")

そして、

For Each

と組み合わせることで実務で活躍するコードが書けるようになります。

Copilotを活用すれば、

  • Arrayコード生成
  • 入力チェック作成
  • 共通処理の設計

も効率よく進められます。

DAO、Collection、Dictionaryを学んだ次のステップとして、ぜひArray関数も活用してみてください。

Access VBA逆引き大全 600の極意 Microsoft365/Office2024/2021/2019/2016対応 | E-Trainer.jp[中村峻] |本 | 通販 | Amazon
AmazonでE-Trainer.jp[中村峻]のAccess VBA逆引き大全 600の極意 Microsoft365/Office2024/2021/2019/2016対応。アマゾンならポイント還元本が多数。E-Trainer.jp[中…

コメント

タイトルとURLをコピーしました