VBAでもADO×SQLをつかうべき圧倒的な3つの理由
VBAでデータ処理、加工を簡単・スピーディーにやりたいならADO×SQL一択

AccessでもExcelでも一番早くデータ処理、加工ができるのはSQLだけ。さて、なぜADO×SQLをつかうべきなのか3つの理由を話していこう。

あなたがADO×SQLをつかうべき3つの理由

  • 短いコードで可読性が高い
  • データ処理が高速化
  • コード修正につよい

あなたがADO×SQLをつかうべき理由は上記の3つになる。くわしく話していこう。

短いコードで可読性が高い

SQlではテーブルかシート指定、列名と条件設定するだけでデータ加工できるから短いコードでかつ、可読性が高い。わざわざFor文やVLOOKUP関数、Macth関数をつかわないでいい。

たとえば、SQLで名前から年齢を取得したいならつぎのようにするだけ。

SELECT [PeopleSheet].age
FROM [DataSheet] INNER JOIN [PeopleSheet]
ON [DataSheet].name = [PeopleSheet].name
WHERE [DataSheet].name = 'さいとう しょういちろう'

VBAでVLOOKUPを使おうとするとつぎのようになる。

Const AGE_COLUMN As Long = 2
Const SEARCH_NAME As String = "さいとう しょういちろう"

Dim last_row As Long
Dim last_column As Long
Dim data_range As Range
Dim age As long

With PeopleData
    last_row = .Cells(Rows.Count, 1).End(xlUp).Row
    last_column = .Cells(1, Columns.Count).End(xlToLeft).Column
    Set data_range = .Range(.Cells(1,1), .Cells(last_row, last_column))

    age = WorksheetFunction.Vlookup(SEARCH_NAME, data_range, AGE_COLUMN , False)
End With

どうだ?長くて分かりにくいだろう。だからSQLにすれば短くて可読性が高いコードが書けるようになる。

データ処理が高速化

PowerQueryよりぜんぜん早い。そもそも、PowerQueryでさえ裏ではSQLをつかっている。

まあたしかにPowerQueryでも早い。ただPowerQueryだと、ヘッダーに昇格みたいなムダな処理をやってる。あと変更、修正がしづらい。

SQLではムダな処理がなく、接続→抽出だけやってるから速い。

コード修正につよい

SQLでコード修正が発生するのは、列名が変わったときぐらい。それも一瞬で直せる。

たとえば、列の順番が変わったりしても.Cells()なんちゃらで対応しているとだるい。Match関数でさえ、エラー処理をいれないとダメ。

ADO×SQLでは列名さえあればOK。新しくデータいれるときも更新もすぐできる。

それも、どっか設定用のシートに列名いれるだけでコード修正すら必要なくなる。

まとめ: さっそくADO×SQLをつかってみよう

  • 短いコードで可読性が高い
  • データ処理が高速化
  • コード修正につよい

ということがADO×SQLをつかうべき理由。少しでも価値を感じたなら、まずVBAのADOでSQLを使えるようにする方法【爆速でデータ加工】でSQLをつかえるようにする準備をしていく。

つぎに【まとめ】ADO、SQLの書きかたすべて【基本・JOIN結合・使える、使えない構文】をみて実際にSQLを実行して短く簡単なコードが書けることを実感してみてほしい。

事務作業を自動化してもっと"ラク"しませんか?

あなたの会社の事務作業...効率化してラクに。もっと重要な業務に集中できるようになります。

日々増えるルーティンの事務作業...
「この作業めんどくさい...」
「事務作業に時間をとられて他に集中できない...」

あなたの代わりにVBAを使ってパソコン業務を自動化。あなたはもっと価値のあることに時間を使うことができるため売上UP、ムダなコストの削減が期待できます。

また、作って終わりではなくつぎの3つのことを約束します。

  • しっかりドキュメント作成
  • きれいな見やすいコードでムダな工数カット
  • できるだけボタン1つポチッと押すだけで業務が完了

どんなにささいなめんどくさい事務作業でも相談してください。相談は無料です。
3年の業務効率化実績があるため、力になれるかもしれません。

※件名には「業務効率化の相談」と記載ください。できるだけ24時間以内に返信します。