【実践1-1】同一Excelブック内のシートからSQLでデータを取得する

【実践1】で紹介するプログラムを完成させると次のような処理が可能になります。

内容としては、仕入データを検索するというシンプルな内容です。ただし、SQLを活用した内容になっていますので、じっくり取り組んでみてください。

正直、シート内の検索であれば、SQLを使用しなくてもExcelのフィルター機能を使えば簡単に表示できます。しかし、ここで重要なのは、

  • VBAの基本的な構造を理解すること
  • 応用の利くSQLの活用方法を身につけること

です。【実践1】のプログラムを応用して、自分の業務や勉強にどうやって役立てるか想像しながら、取り組んでみてください。なお、【実践1-1】では、環境構築がメインです。

1. まずここから!VBAプログラミング環境の構築

まずは、環境構築から確認していきましょう。

1-1. マクロ用ファイル作成

【実践1】のプログラムが動くExcelファイルを作成します。

名称や保管先はどこでも良いので、Excelファイルを新規作成しましょう。ここでは、

としています。

作成したExcelファイル(.xlsx)では、VBAを利用して作成できるマクロと呼ばれる機能(複数の処理を1つのコマンドにまとめたもの)が保存できません。

マクロ機能を保存するには、「Excel マクロ有効ブック(*.xlsm)」という種類を選択して、保存する必要があります。

作成したExcelファイルを開き、「ファイル」>「名前を付けて保存」>ファイルの種類で「Excel マクロ有効ブック(*.xlsm)」を選択し、保存します。

xlsmの拡張子が付いたファイルが別途作成されます。

拡張子を表示設定にしていない人は、以下の設定で表示できるので確認してみてください。

【参考】初期設定のままでは使えない⁉最初にやるべき設定

この他にも、マクロが利用できる環境を整えるには、やっておいた方が良い設定がいくつかあります。それらは、別途、記事にまとめていますので、次の記事を参考に以下の設定をしましょう。

【参考】ついでに設定しておく?やっておいた方が良い設定

ついでに設定しておくと役に立つものを、いくつか紹介しています。次の記事を参考に設定してみましょう。

1-2. サンプルデータ投入

サンプルの仕入れデータを登録していきましょう。

データ登録は本題ではないので、以下のデータをコピペして、サクッと作成しましょう。

  • STEP1
    「仕入」シートを追加する

    まずは、「仕入」シートを追加します。

  • STEP2
    サンプルデータをコピーする

    続いて、サンプルデータをコピーします。表を左上からすべて選択していきます。

    「仕入額」の列まですべて選択してください。選択できたら、「右クリック」>「コピー」をするか、[Ctrl] + [c]でコピーします。

    それでは実際に、以下の表からデータをコピーしてみてください。

    商品種別仕入日仕入先ASIN商品名仕入単価数量仕入額
    新品2024/8/4楽天B0CS9KJXC9シリコーン トング キッチントング 177958895
    新品2024/8/4AmazonB0CP3DWG3Mコパ公式 ゴムポン バスブラシ165034950
    新品2024/8/4YahooB0D46M9DHDONE PIECEカードゲーム 新たなる皇帝8600543000
    新品2024/8/4楽天B0D1BJFGWPONE PIECEカードゲーム プレミアムブースター5350210700
    新品2024/8/4楽天B00AE039TUサントリー セサミンEX オリザプラス 90粒276538295
    新品2024/8/20楽天B00B3DP09Eインナーシグナル エキス7252429008
    新品2024/8/20AmazonB00CBT9YWIマカ-junsui-袋入り 粒タイプ ふれあい生活館ヤマノ4268729876
    新品2024/8/20AmazonB00CHYMG8GDUO ザ クレンジングバーム302226044
    新品2024/8/20YahooB00H1LU3WGモイストゲルプラス 100g《オールインワンゲル》381213812
  • STEP3
    「仕入」シートに貼り付ける

    コピーした元データをExcelの「仕入」シートに追加していきます。Excelの「仕入」シートのA1セルを選択した状態で、「右クリック」>「形式を選択して貼り付け…」>「テキスト」の順に選択します。

  • STEP4
    貼り付けたデータを確認する

    以下のようにExcelシートに商品の仕入れ情報が追加できたでしょうか。

1-3. 「開発」タブの表示設定

すでに「開発」タブが設定済みの方はとばしてください。

「【参考】初期設定のままでは使えない⁉最初にやるべき設定」の記事でも紹介していますが、見逃した方は、この後に進めないので、抜粋して解説します。

Excelの初期設定では、画面上部に表示されるリボンに[開発]タブが表示されていません。

この[開発]タブでは、VBAプログラミングを書いたり、編集したりする環境が用意されています。1度表示すると、新しいExcelファイルを開いても表示されますので、初めての人は、追加しておきましょう。

  • STEP1
    「ファイル」をクリックする

    リボンに[開発]タブが表示されるように設定を変更します。Excelファイルを開き、画面左上の「ファイル」をクリックします。

  • STEP2
    オプションをクリックする

    画面左の項目から「オプション」をクリックします。

  • STEP3
    「リボンのユーザー設定」をクリックする

    “Excelのオプション”画面が表示されるので、「リボンのユーザー設定」>「開発」にチェックを入れて、「OK」をクリックします。

  • STEP4
    [開発]タブの表示を確認する

    Excel画面上部に[開発]タブが表示されました。

ひと休み🍵

よし、環境が整った!さっそくプログラミングをはじめよう!

・・・とは言え、何から始めたらよいのでしょう?

VBAに限らず、プログラミングをはじめて勉強する際、真っ黒い画面を広げて、変数が~とか、IF文が~とかを一通り、参考書やサイトで学んだ経験があるのではないでしょうか。

これが、どんな役に立つの?

という不安を感じつつ、ひたすら学ぶのは、なかなかの苦痛です。では、どんな役に立つのか分からないのはなぜでしょう?

主な原因は、視覚(画面の動き)と動作(プログラム)がうまく紐づけれないからではないでしょうか。

例えば、Web開発を勉強する際、画面はHTMLで作成して、処理はPHPやjavascriptで作成すると言うように別々の言語で作成する流れが多いかと思います。そうすると、処理が画面にどう影響するかが見えづらくなります。

これに対し、ACCESSやExcelVBAのメリットは、画面の部品が事前に用意されていることです。

そのため、簡単に画面が作成できます。

ただし、用意されたパーツには限りがあるので、自由自在ではありません。その分、自由度は下がりますが、はじめてプログラミングする人は、取り組みやすいのではないでしょうか。

ちなみに、画面だけでなく、動作もパーツが用意され、より簡単にプログラムを経験できるツールもあります。子供の教育にも使われるスクラッチなどが、その一例です。

このように考えると、プログラミングの全体像を理解するうえで、足掛かりとしてExcelVBAを選択肢に入れるのはアリかもしれません。

ただし、先ほども言ったように、より自由度や汎用性などを考えると、やりたいことによって、いろいろな言語を学んでいく必要はあるでしょう。