エクセル顧客管理
顧客登録のシートを作成、その前にマクロって何?

Excelマクロを駆使したカスタマイズ可能なエクセル顧客管理、エクセルVBAの学習教材
公開日:2013年5月以前 最終更新日:2014-11-11

第3回.顧客登録のシートを作成、その前にマクロって何?


エクセルで顧客管理を作ります、


シート「顧客一覧」からシート「顧客登録」に項目名も含めて、自動で作成します、


また逆に、シート「顧客登録」で入力したデータを、シート「顧客一覧」に登録します。


これらは、関数ではできません。


そこで、マクロの登場です。


多少でもマクロを使った事がある人は、あくびが出るかもしれません。


しかし、基本をよく分からずに使っている場合も多いと思います。


まずは、マクロの基本からです。


マクロを使う準備

2007以降の場合は、「開発」タプを表示います。

「オフィスボタン」→「Excelのオプション」→「基本設定」で、

「開発」タブをリボンに表示する、にチェックを付けます。


マクロの記録

1.2003なら、「ツール」→「マクロ」→「新しいマクロの記録」

  2007以降、「開発」→「マクロの記録」

  「マクロの記録」が表示されます。

2.マクロ名は「Macro1」のままで良いでしょう。「OK」

3.適当なセル、例えば、A1を選択し、「こんにちは」と入力します。

4.2003なら、「ツール」→「マクロ」→「記録終了」

  2007以降、「開発」→「記録終了」

これで、マクロが記録されました。



マクロの内容を見る

「Visual Basic Editor」を起動します。

2003なら、「ツール」→「マクロ」→「Visual Basic Editor」

2007以降、「開発」→「Visual Basic」

ショートカットはAlt+F11です。


Excel VBA 解説


それぞれのウィンドウは、

左上が「プロジェクト」、左下が「プロパティ」、右上が「コード」等になります。

「プロジェクト」に「標準モジュール」が出来ています。

「標準モジュール」を展開すると、「Modure1」があります。

これをダブルクリック、または、F7で、「コード」が表示されます。

中には、

Sub Macro1()
'
' Macro1 Macro
'

'
Range("A1").Select
ActiveCell.FormulaR1C1 = "こんにちは"
Range("A2").Select
End Sub
これが、マクロであり、プログラミング言語をVBAと呼びます。


マクロの実行方法

1.エクセルの画面に戻って、A1をクリアし

2.2003なら、「ツール」→「マクロ」→「マクロ」

  2007以降、「開発」→「マクロ」

  ショートカットは、Alt+F8です。

3.「Macro1」を選択し、「実行」

これで再び、A1に「こんにちは」と入ったはずです。


Macto1のコードの説明
Sub Macro1()

・・・
End Sub

これが1つの単位です、プロシージャーと呼びます。
SubはSubプロシージャーと呼ばれます。

「'」以降は、その行は、コメントとなります。行の途中からでも書くことができます。

Range("A1").Select、A1セルを選択します。

Selectはメソッドと呼ばれます。

ActiveCell.FormulaR1C1 = "こんにちは"、選択セルに「こんにちは」と入れます。

この場合の「=」は、等号というより、値の代入になります。

ActiveCellはオブシェクト、FormulaR1C1はプロパティと呼びます。

さらに、私は、Enterしたので、下のセルA2が選択されました。



モジュールとは

モジュールには、

「シートモジュール」

「ブックモジュール」

「標準モジュール」

「クラスモジュール」

があります。

「シートモジュール」は、シート毎に作成し、そのシートの操作で使用します。

「ブックモジュール」は、ブックに1つで、そのブックの操作で使用します。

「標準モジュール」は、上記のモジュール等で共通で使用します。

「クラスモジュール」は、クラスを作成します。今回のシリーズでは使用しません。


プロシージャーとは

プロシージャーは、procedureであり手順です、一連の手順を記述したものです。

プロシージャーには、SubとFunctionの2種類があります。


Subプロシージャーとは

Sub プロシージャー名(引数)

・・・
End Sub

です、引数は省略できます。

プロシージャーと言った場合は、モジュールの全てを指すことになります。

モジュールの中に複数のサブ(Sub)プロシージャーがあることになります。

また、本当は、スコープが先頭に入り、Private SubPublic Subとなります。

しかし、スコープを意識したプログラミングは初心者には難しいので、当面は省略します。

省略した場合は、Publicとなり、他のモジュールから参照でき、

Privateの場合は、同一モジュール内のみ参照が可能です。

とりあえず今は気にする必要はないです。

引数は、外部からそのプロシージャーを呼び出した時に、値の引き渡しに使用します。

引数は省略できます。

引数の指定方法は、おいおい説明します。


Functionプロシージャーとは

Function プロシージャー名(引数) As 戻り値のデータ型
・・・
End Sub

Subプロシージャーとの違いは、処理した結果(戻り値)を返すところです。

呼び出す側では、この戻り値を使用します。

例えば、Subでは、処理が正しく行われたかどうかが分かりません。

Functionでは、処理結果を戻すことにより、呼び出し側で判定ができるようになります。

上記以外は、Subと同様と考えて下さい。


オブジェクトとは

オブジェクトは、objectであり、物・物体のことです。

VBAで何か操作をしようとする対象となるものがオブシェクトです。

ブックやシート、そしてセルなどを指します。

プロパティとは

プロパティは、propertyであり、財産・資産のことです。

オブジェクトの持つ財産・資産のことであり、オブジェクトの性質を表すデータです。

セルの持つ値や書式は全て、セルのプロパティです。

メソッドとは

メソッドは、methodであり、方法。方式です。

オブジェクトに対する動作・操作を指定します。

セルを選択する、セルを削除する等です。



今回は、この辺にしておきましょう。

まだまだ説明が足りませんが、今後の説明に必要な最低限の用語として説明しました。

とりあえず、単語だけ覚えてもらえれば良いと思います。

あくまで、説明のなかで突然知らない用語が出てきたー(泣)

という事が無いように説明しました。

また、ネット上には、VBA入門が多数あるので、参考にして下さい。


さて、次回からは、本格的にマクロの作成にはいります。


今回の復讐

モジュール

プロシージャー

Subプロシージャー

Functionプロシージャー

オブジェクト

プロパティ

メソッド




同じテーマ「エクセル顧客管理」の記事

第1回.どんなソフトにするか

では、エクセルで顧客管理を作っていくわけですが、まずは、どんなソフトを作るのかを決めなければいけません、顧客管理は幅が広く、業種によっても様々です、まずは、ごく一般的なものを作成していきます。出来れば、「お客様第一」顧客管理システムに近い物ができれば良いと思います。
第2回.顧客一覧のシートを作成
エクセルで顧客管理を作ります、顧客管理でメインとなる、顧客一覧のシートを作成しましょう、シート名は、「顧客一覧」で良いでしょう。上2行と、左1列を空けて、セルB3から使い始めましょう。上2行は、後にボタン等を付けて、いろいろ機能追加するときに使います。
第3回.顧客登録のシートを作成、その前にマクロって何?
第4回.顧客登録のシートを作成(1)
さて、いよいよマクロの作成に入ります、まずは、シート「顧客登録」を追加して下さい、中身は何も必要ありません、次に、「VisualBasicEditor」(VBEと略します、今後はVBEとだけ記述します)を起動して下さい。起動方法は前回説明しました。
第5回.顧客登録のシートを作成(2)
エクセルで顧客管理を作ります、前回の続きです、もう少し使えるマクロにします、前回までですと、「顧客区分」の「リスト」や書式が、「顧客一覧」からコピーされていません。これを追加して、前回までのマクロを再度。太字の部分が、追加した所です。
第6回.ここまでの復習
エクセルで顧客管理を作ります、ここまで、ハイペースで来ましたので、一旦整理しながら復習します、まず、エクセルのシートの確認です。シート「顧客一覧」シート「項目名」シート「顧客一覧」の「顧客区分」に、「入力規則」の「リスト」を設定します。名前定義 1.シート「項目名」を選択 2.Ctrl+F3を押して下さい。
第7回.本格的なプログラムへ
エクセルで顧客管理を作ります、前回までのプログラムは、説明の為のコーディングをした部分があります、本格的なプログラムを目指す為に、いろいろ手直ししようと思います。コーディングは好みの部分も大きいのですが、最も気を付けるべき事は、1.可読性 2.保守性 3.処理スピード になるかと思います。
第8回.顧客一覧より顧客データを取得
エクセルで顧客管理を作ります、これまでの感じはどうでしょうか、本当は、ここまでの全てが理解出来ていれば、もう自分でどんどんプログラムを作れてしまうと思います。つまり、全てが理解出来る人は、このブログを読んだりはしないと言う事です。と言う事は、全ては理解出来ていないからこそ、読まれているのですよね。
第9回.イベントを使ってマクロを起動させる
エクセルで顧客管理を作ります、前回までで、「顧客一覧」から、「顧客登録」のシートを作成し、「顧客登録」の「顧客番号」で、「顧客一覧」よりデータの取得まで出来ました。しかし、手動でマクロを起動したのでは、面倒ですよね。手っ取り早いのは、フォームコントロールのボタンを付けて、それにマクロを割り当てます。
第10回.コーディングとデバッグ
エクセルで顧客管理を作ります、前回までで、「顧客一覧」→「顧客登録」、が自動化出来ました、しかも、シート名も自由に変更できます。これだけでも、いろいろ応用範囲があり、結構使えるはずです。「何かの一覧」→「何かの登録」、として自由に使用が可能です。
第11回.顧客登録より顧客一覧へ更新
エクセルで顧客管理を作ります、プログラム完成へ向けて一気に突き進みましょう、今回は、「顧客登録」で入力した内容を、「顧客一覧」へ更新します。「顧客番号」が存在しない場合は、最終行の次へ、存在する場合は、その行へ更新します。その前に、まずSubモジュール「顧客一覧より取得」を少し修正します。


新着記事NEW ・・・新着記事一覧を見る

ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|VBA入門
4.ひらがな⇔カタカナの変換|エクセル基本操作
5.繰り返し処理(For Next)|VBA入門
6.変数宣言のDimとデータ型|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.Findメソッド(Find,FindNext,FindPrevious)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。


このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ