[三流君] −−> [VBAで楽しく] −−> [バックナンバー一覧]
−−> No.140 ヒアリング、プログラム時にほしい情報をもらい設計する

ヒアリング、プログラム時にほしい情報をもらい設計する

メルマガ発行内容

<ヒアリング、プログラム時にほしい情報をもらい設計する>

こんにちは、三流プログラマーのKen3です。 郵便番号の集計、終盤のツメなんだけど、 チョイ置いといて、新たな質問の書き込みがあったので、 やってみたいと思います。 メルマガで意外と多く感想メールもらうのが、 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 基本設計書/仕様書のお話 http://www.ken3.org/vba/doc.html No.127 要求を聞き、疑問点をつぶし、仕様書を書く http://www.ken3.org/backno/backno_vba26.html#127 No.133 仕様変更が来たら?落胆しないで前向きに? http://www.ken3.org/backno/backno_vba27.html#133 などの、テクニックに関係ない話です。※評価のポイントは低いんだけど(笑) 調子こいて、今回も発行してみます。 失敗しなきゃいいけどね・・・

/* * 1. 今回のキッカケ */

下記が、書き込まれた質問内容です。 ---------------------------------- VBScriptで次のようなことが出来るのかご助言頂きたく書き込んでいます。 入力ファイル = input.txt (普通のテキストファイル) 出力ファイル = output.xls (マクロの仕込んだエクセルファイル) 入力ファイルを読み込み、 出力ファイルに書き出し、 マクロを実行する。 この繰り返しをSheetを増やしながら行う。 入力ファイルのフォーマットは次のような感じです。 sheet_1 A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1.・・・ A2,B2,C2,D2,E2,F2,G2,H2,I2,J2,K2,L2.・・・ A3,B3,C3,D3,E3,F3,G3,H3,I3,J3,K3,L3.・・・ A4,B4,C4,D4,E4,F4,G4,H4,I4,J4,K4,L4.・・・ ・ ・ ・ sheet_2 A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1.・・・ A2,B2,C2,D2,E2,F2,G2,H2,I2,J2,K2,L2.・・・ A3,B3,C3,D3,E3,F3,G3,H3,I3,J3,K3,L3.・・・ A4,B4,C4,D4,E4,F4,G4,H4,I4,J4,K4,L4.・・・ ・ ・ ・ sheet_n A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1.・・・ A2,B2,C2,D2,E2,F2,G2,H2,I2,J2,K2,L2.・・・ A3,B3,C3,D3,E3,F3,G3,H3,I3,J3,K3,L3.・・・ A4,B4,C4,D4,E4,F4,G4,H4,I4,J4,K4,L4.・・・ ・ ・ ・ 新しいSheetの始まりはSheet_番号で Sheet_番号がそのままSheet名になります。 Sheet_番号は始まりを認識するキーであり 書き出しは行われません。 A1〜L4は可変でカンマで区切られています。 ----- イメージ的には、1つのテキストファイルから、複数のシートを作成する。 そんな感じですよね。

/* * 2.勝手に難しく考えたり、逆に安易に考えたり・・・・ */

入力、処理、出力を考えるといいよ、なんて書いてましたね。 その思考で行くと、 入力ファイル = input.txt (普通のテキストファイル) を読み込み、 Sheet_n nは番号の行を区切りとして、シートを切り替え、 通常のカンマ区切りのデータをシートに書き出す。 出力は、 出力ファイル = output.xls (マクロの仕込んだエクセルファイル) です。 そんな感じかなぁ。 と 性格にもよるけど、安易に考えて作業に入れる人はいいんだけど、 条件がそろうまでは、動き出さない慎重な人とイロイロだとは思いますが。 ここまでの説明で、疑問点は、何だろう? ※逆の言い方だと、依頼時の漏れている項目、伝えたほうがいい項目は? まぁ、入力、出力のイメージがはっきりしているので、心配は無いんだけど、 慎重な人は、 >VBScriptで次のようなことが出来るのかご助言頂きたく書き込んでいます。 の VBScriptに反応かなぁ。 疑問1、開発言語と環境は? ^^^^^^^^^^^^^^^^^^^^^^^^^^ これが書いてあると、さらによかったのかも。 気にする人は、 Win98とWin2000のOSとか、 Excel97とExcel2002のアプリのバージョンまで気にすると思います。 そんなこんなで、下記のような質問をしてみたり。 ---- 質問内容 ---- VBScriptの実行は、ASPのサーバー上ですか? それとも、ローカルのPCで実行? ※もしかして、Excelでボタンを押したらでOK? VBAでOK? ----------------- 私の読みでは、VBAとVBScriptを勘違いしていると、読んだけど。 疑問に対して、回答の返信をもらいました。 --- いただいた回答 --- 実行するのはローカルのPC上です。 やりかけのソースなどはありません。すみません。 専門用語がいっぱいでちょっと?状態です。 作ったプログラムxxx.vbsをダブルクリックすると 起動するようにしたいのです。 ユーザーIFはMsgBoxを使って Input file ? Output file ? と入力、あるいは参照するように。 ---- 回答をもらい、そのまま、VBScriptだったことに気が付く。 こんな感じで、疑問を質問し、回答をもらう、、、繰り返しですよね。 これも性格で・・と言っちゃいけないのが、 疑問に思っても質問しないで、自分勝手に思い込んで作業を開始する行為。 例えば、 自分の都合のよいように、 ~~~~~~~~~~~~~~~~~~~~~~ VBAと勘違いしてるんだこの人(勘違いしてるのは客先じゃなくてオマエだろ(笑)) と決め付けて、VBAのテキスト処理、OPENとLine INPUT#とかで組んで、 後で、えっ聞いてないよそんなこと?なんて言い出したりして・・・ 先走りがちの人は、 ~~~~~~~~~~~~~~~~~~ まず、入力と出力、処理をはっきりさせる。 環境、OSや使用可能なアプリケーションを確認します。 ※実話?だけど、  ファイルの一覧選択、VBでExcelをコントロールするプログラム組んだら  NT系のOSで、勝手なソフトインストール禁止の端末で、  VBのプログラムがセットアップできなかった・・・そんな会社もあります。  石橋派の人は、インストール先のマシーン環境も事前チェックしてくださいね。  (石橋叩いて・・じゃなくって、確認するのが基本だろ)

/* * 3.設計開始、プログラム作成開始 */

設計、ここまで来れば、もう出来ているようなもんですね。 処理概要 xxxx.vbsをダブルクリックしたら、 xxxx.txt 入力ファイル名を入力(できたら選択) xxxx.xls 出力ファイル名を入力(できたら選択) シートへのデータセット処理を開始する。 入力ファイル仕様 sheet_1 A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1.・・・ A2,B2,C2,D2,E2,F2,G2,H2,I2,J2,K2,L2.・・・ A3,B3,C3,D3,E3,F3,G3,H3,I3,J3,K3,L3.・・・ A4,B4,C4,D4,E4,F4,G4,H4,I4,J4,K4,L4.・・・ ・ ・ ・ sheet_2 A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1.・・・ A2,B2,C2,D2,E2,F2,G2,H2,I2,J2,K2,L2.・・・ 先頭6文字がsheet_の行は、シート名の行で、ここでシートを切り替える その他の行は、データで、A1〜L4へセットする。 おっと、まとめたつもりだったけど、そのまんまでした(笑)

/* * 4.テストで確認すること、読みの基準 */

さてと、詳細設計とプログラムを作り始めるか。 チョット待ってよ、詳細設計したり、組み始める前に (もっとスゴイ人は、いきなりエディター立ち上げないで) 事前に確認していると楽なことがあったりします。 ※影の努力、事前調査ってヤツですね。 VBScriptってテキストファイル、どうやって読むのだろう? Excelを起動できるのかなぁ? 起動したExcelのオブジェクトは同様に操作できるのかなぁ? などなど、言語でひっかかりそうな部分を事前にチェックします。 まぁ、世の中、豪快な人も居て、 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ テキストファイルが読み込めない、そんな言語なんて無いだろ、 あったら聞かせろよ なんて、気にしない人も居ます。 まぁ、気にしない人も、気にする人も、 要求されていることが実現可能なのか?考えることは必要だと思います。 xxxx.txt 入力ファイル名を入力 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ユーザーからの入力を受け付けない、そんな言語あるの? まぁまぁ興奮しないで、そんなこと言わないで、調べましょうよ。ね。。。 -【けんぞう!】--------------------------------------------------------- ASPが利用可能なレンタルサーバーをお探しのアナタ、 http://www.ken3.org/asp/server.html ← けんぞうも使っているサーバーの紹介 『おっIISでbasp21でメール送信、mdbも使えるよ』(三流PG:31歳) ------------------------------------------------------------------------

/* * 5.終わりの挨拶 */

今回は、 システムの 伝えたい情報、聞かないといけない情報を探る。 そんな話を軽く書きました。 何かの参考となれば幸いです。 次は、詳細設計から、組んでいきます。 Excel/Access大好き、三流プログラマーKen3でした。

フィードバック

VBA系の→[掲示板]←を覗く、質問を書き込む

評価・感想

No.140を読んだ満足度(評価)は?
5満足(参考になった)
4まぁまぁ(一部参考になった)
3普通(どちらとも言えない)
2なんかなぁ(期待と違った)
1不満(読んで損した気分)
作者に感想・質問を送る場合は下記に気軽に書いてください
あなたのお名前(ニックネーム) さん

作者からの返信は、 不用 E-mail で受信したい
*質問・感想はメルマガで紹介する場合があります

ページフッター(リンクや広告など)


[三流君(TOP ken3.org へ戻る)]
-- [VBA系TOPへ]
---- [VBA系バックナンバー目次へ移動]
------ [VBAでIEを操作 CreateObject("InternetExplorer.application")]・・・実は当店一番人気、VBAでIEを操作するサンプルです
------ [VBAでOutlookの操作 CreateObject("Outlook.Application")]・・・Outlookを使い、メール関係の処理です
------ [Access から Excel 連携 CreateObject("Excel.Application")]・・・人気のAccessからExcelへデータ書き出しなどです
------ [AccessのUserForm/サブフォームを操作]・・・アクセスでフォームを使ったサンプルです
------ [Accessのレポートを操作]・・・レポートを操作してみました
------ [Access クエリー関係やその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です
------ [Excel UserForm(ユーザーフォーム)を操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
------ [ExcelからAccessを操作する]・・・ExcelからAccessのマクロを起動してみました、
------ [Excel関係 関数、その他]・・・その他Excel関係です
------ [VBAでテキストファイル(*.txt,*.html,*.csv)の操作]・・・テキストファイルを使ったサンプルです
------ [VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます


広告
-- [通販系の売れ筋広告へ] ←主に楽天やAmazonのランキングです
blog
-- [三流君の作業日記] ← 日々の作業を少々
-- [通販あしあと] ← 通販ページの足跡を一覧で羅列

情報を探す

情報を探すならGoogleかな?

↓Web全体、サポート情報(support.microsoft.com)や三流君VBA(ken3.org)から検索する
Google
Web www.ken3.org
www.microsoft.com support.microsoft.com

あとは、項目別にMSでお勉強かな?
◆ マイクロソフト サイトの歩き方
◇ How-To インデックス
◇ FAQ インデックス
◇ スキルレベル別おすすめコンテンツ
◇ テクノロジ マップ
◇ テーマ別技術資料一覧

書籍の購入

Webだけじゃさすがに勉強しきれないので、プログラミング関係の書籍も読んでみては??

コンピュータ書籍の発送がハヤイ専門店

コンピュータの本・専門店
種類が豊富で探し易いです。※在庫ありが48時間以内発送が急ぎで資料や書籍がほしい時、とても助かります。
お奨め本の目次を見るだけでも勉強になったり

amazon.co.jpでキーワード別チェック

下記、私が設定したキーワードですが、こんな感じで資料や書籍を探ってみては?
[VBA全体を把握する] -- やはり全体をさらっと見たいですよね。
[SQL関連でDB力UP] -- システムはデータベース設計が重要
[ADO接続を探る] -- VBAなのでADO接続を押さえておく
[Windows APIを探る] -- さらにAPIになて知ってれば強力だ!
[.NETを探る] -- と言っても時代は.NETに流れてるし
プログラミング以外でも知りたいことは多くって、
[人間関係] -- で、客先・上司、まわりに気を使い。
[プログラマーの自己啓発] -- プログラムだけじゃなくいろいろと向上したいよ
[コーチング・育成] -- 先輩になったら後輩(部下)の面倒をみてね。
そんなこんなでプログラマーっていろいろと大変なんだってば・・・