【実践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 シリコーン トング キッチントング 1779 5 8895 新品 2024/8/4 Amazon B0CP3DWG3M コパ公式 ゴムポン バスブラシ 1650 3 4950 新品 2024/8/4 Yahoo B0D46M9DHD ONE PIECEカードゲーム 新たなる皇帝 8600 5 43000 新品 2024/8/4 楽天 B0D1BJFGWP ONE PIECEカードゲーム プレミアムブースター 5350 2 10700 新品 2024/8/4 楽天 B00AE039TU サントリー セサミンEX オリザプラス 90粒 2765 3 8295 新品 2024/8/20 楽天 B00B3DP09E インナーシグナル エキス 7252 4 29008 新品 2024/8/20 Amazon B00CBT9YWI マカ-junsui-袋入り 粒タイプ ふれあい生活館ヤマノ 4268 7 29876 新品 2024/8/20 Amazon B00CHYMG8G DUO ザ クレンジングバーム 3022 2 6044 新品 2024/8/20 Yahoo B00H1LU3WG モイストゲルプラス 100g《オールインワンゲル》 3812 1 3812 - 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を選択肢に入れるのはアリかもしれません。
ただし、先ほども言ったように、より自由度や汎用性などを考えると、やりたいことによって、いろいろな言語を学んでいく必要はあるでしょう。