第36回.最終回
エクセルで顧客管理を作ろう、
今回で36回になりました、
長い間お読み頂き感謝いたします、
今回で、このシリーズは最終回といたします。
本記事の最後で、現在のエクセルをダウンロードできます。
当初の予定では、宛名や同報メールの機能も入れる予定でしたが、断念しました。
VBAコードが長く複雑になってしまい、ブログでの解説に向かないと判断いたします。
宛名について
フリーの良いソフトが多数あり、大抵はCSV取り込みがサポートされています。
これらを活用するのが現実的には最も良い方法でしょう。
CSVの出力をマクロで自動化すれば良いです。
これは、極めて簡単ですので、チャレンジして下さい。
複数レイアウト(葉書、封筒、ラベル等)の位置調整等はかなり大変です。
ただし、簡単にやるなら、VLOOKUPだけでもできますので、作ってみるのも良いでしょう。
同報メールについて
BASP21という、メールの送受信や、HTTP・FTPなどの機能を提供してくれるDLLがあります。
フリーソフトですが、素晴らしいDLLとの評判です。(私は使用した事がありません)
エクセルでは、これを使用するのが最良だと判断します。
ネットにいろいろ情報がでていますので、興味のある方は調べてみると良いでしょう。
例えば、「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出力を追加
新着記事NEW ・・・新着記事一覧を見る
TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(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)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.繰り返し処理(For Next)|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.条件分岐(Select Case)|VBA入門
10.ブック・シートの選択(Select,Activate)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。