エクセル顧客管理 | 第36回.最終回 | Excelマクロを駆使したカスタマイズ可能なエクセル顧客管理、エクセルVBAの学習教材



最終更新日:2014-11-11

第36回.最終回


エクセルで顧客管理を作ろう、


今回で36回になりました、


長い間お読み頂き感謝いたします、


今回で、このシリーズは最終回といたします。


本記事の最後で、現在のエクセルをダウンロードできます。



当初の予定では、宛名や同報メールの機能も入れる予定でしたが、断念しました。


VBAコードが長く複雑になってしまい、ブログでの解説に向かないと判断いたします。



宛名について


フリーの良いソフトが多数あり、大抵はCSV取り込みがサポートされています。


これらを活用するのが現実的には最も良い方法でしょう。


CSVの出力をマクロで自動化すれば良いです。


これは、極めて簡単ですので、チャレンジして下さい。


複数レイアウト(葉書、封筒、ラベル等)の位置調整等はかなり大変です。


ただし、簡単にやるなら、VLOOKUPだけでもできますので、作ってみるのも良いでしょう。



同報メールについて


BASP21という、メールの送受信や、HTTP・FTPなどの機能を提供してくれるDLLがあります。


フリーソフトですが、素晴らしいDLLとの評判です。(私は使用した事がありません)


BASP21のページ


エクセルでは、これを使用するのが最良だと判断します。


ネットにいろいろ情報がでていますので、興味のある方は調べてみると良いでしょう。


ただし、認証方法等についての知識が無い方は、かなり苦労する事になります。


例えば、「POP befor SMTP」←これが何か理解できない人は、まずはそれらの知識を。


この後、機能追加しようかと考えていますが、


私も使用した事がありませんので、ネットで情報を集める必要があります。



最後に1つ解説をします。


シートの指定方法についてです。


本ソフトではシート名の変更に自動対応させる為に、関数を使用した方法を使いました。


しかし、簡単には、Public Constで、シート名を指定する方法が簡単です。


シート名を変更した場合は、このConstを変更するだけで対応できます。


また、シートのオブジェクト名を使用する方法も考えられますが、シートコピーに対応できません。


以下、シートの指定方法です。


プロジェクトウインドウで先頭シートが、Sheet1(Sheet1)、となっている場合です。


変数vにA1セルを入れる場合、


1.v = Worksheets("Sheet1").Cells(1, 1)

2.v = Worksheets(1).Cells(1, 1)

3.v = Sheet1.Cells(1, 1)

上記3通りの指定方法があります。


100万回のテストでは、

1.15秒

2.13.75秒

3.7秒


コレクションやオブジェクトについて理解していれば、この結果は事前に想像できます。

1.と2.では、コレクションのインデックスを指定した方が早いのは明確です。

3.はコレクションを参照せず、直接オブジェクトを指定しています。

「オブジェクト ブラウザ」には、Sheet1が表示されているのです。


1.はシート名を変更した場合、コンパイルエラーにはなりません、実行時にエラーになります。

2.はシートの順番を変更した場合、実行時に他シートを参照してしまいます。

3.はシートをコピー後に、元を削除、新シートを元の名前にした場合、コンパイルエラーになります。


やはり、Public Constで、シート名を指定する方法が簡単確実です。



現在のエクセルは、以下で、ダウンロードできます。


ダウンロード

ダウンロード用の別サイトが表示されます。

(ベクターに掲載した時点で、ダウンロードは停止します。いつになるかは未定です。)


自由に改造し、自由にお使い下さい。


ただし、販売目的での再配布はご遠慮下さい。


また、あまりテストはしていませんので、バグもあると思われます。


ブログで解説した時点のモジュールからは、かなり修正し、バグも減らしています。


しかし、実務で使用したい場合は、事前にテストをしっかりお願い致します。

(本ソフトウェアの使用によるあらゆる損害に、作者は一切の責任を負いません。)


その時の修正方法等の相談は、無料で受け付けします。


本ソフトは、もう少し機能追加し、さらにテストを行った上で、ベクターに掲載する予定です。


その時は、本ブログでご案内いたします。


ただし、ベクターでは、VBAコードはパスワード保護します。



今回のシリーズはこれで終了します。

次回シリーズを現在考え中です。

もう少し、初心者向けが良いのではないかと考えています。


では、次回シリーズにご期待下さい。






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

その後1、CSV出力を追加
その後2、ベクター掲載
第1回.どんなソフトにするか
第2回.顧客一覧のシートを作成
第3回.顧客登録のシートを作成、その前にマクロって何?
第4回.顧客登録のシートを作成(1)
第5回.顧客登録のシートを作成(2)

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

データクレンジングと名寄せ|ExcelマクロVBA技術解説(10月20日)
SUMIFの間違いによるパフォーマンスの低下について|エクセル関数超技(6月17日)
条件式のいろいろな書き方:TrueとFalseの判定とは|ExcelマクロVBA技術解説(6月15日)
空白セルを正しく判定する方法2|ExcelマクロVBA技術解説(5月6日)
フルパスをディレクトリ、ファイル名、拡張子に分ける|ExcelマクロVBA技術解説(4月15日)
テキストボックスの各種イベント|Excelユーザーフォーム入門(4月9日)
フォルダ(サブフォルダも全て)削除する、Optionでファイルのみ削除|ExcelマクロVBAサンプル集(4月4日)
最後の空白(や指定文字)以降の文字を取り出す|エクセル関数超技(3月26日)
先頭の数値、最後の数値を取り出す|エクセル関数超技(3月26日)
Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)

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

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
4.変数とデータ型(Dim)|ExcelマクロVBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
6.定数と型宣言文字(Const)|ExcelマクロVBA入門
7.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
8.マクロって何?VBAって何?|ExcelマクロVBA入門
9.CSVの読み込み方法|ExcelマクロVBAサンプル集
10.ひらがな⇔カタカナの変換|エクセル基本操作




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


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

↑ PAGE TOP