C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: 製品リスト作成


(過去ログ 94 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■56256 / inTopicNo.1)  製品リスト作成
  
□投稿者/ kyo (1回)-(2011/01/07(Fri) 00:19:27)

分類:[.NET 全般] 

仕事が小ロット多品種の仕事をしております。
製品については特定の雛形のエクセルのファイルを1品種1ファイルで記録してあります。
この雛形にしてから、
登録された製品数が100をこえました。
類似品も多いのですが、
個別のファイルで登録しているため、
比較ができなくなってしまいました。
製品ファイルは、

@マイナー変更も含め、日々更新されます
Aファイル名に統一性はありません
Bファイルはすべてサーバー上の特定のフォルダ内に置いてあります
C製品データはすべて同じ形式で保存してます

VBA等の手法を用いて必要なときにデータ取り込みを行い、
必要な項目のみリスト化できないかと考えております。

どなたか、VBA等の手法を用いて、
解決できないでしょうか。


引用返信 編集キー/
■56259 / inTopicNo.2)  Re[1]: 製品リスト作成
□投稿者/ よねKEN (657回)-(2011/01/07(Fri) 01:18:30)
2011/01/07(Fri) 01:25:03 編集(投稿者)

#回答ではありません。

No56256 (kyo さん) に返信
> どなたか、VBA等の手法を用いて、
> 解決できないでしょうか。

VBAがどうという前に、ご説明の内容が私にはさっぱり理解できませんでした。
わかる人にはひょっとしたらわかるのかもしれませんが、ここでの投稿文だけが手がかりですので、
もう少し噛み砕いて説明していただかないと手助けは難しいのではないでしょうか。

◆以下、疑問に思った内容 -- 本題にあまり関係ない疑問も含まれていますが、
 ご説明を理解する上で、??と思ったところです。
 一つ一つにご返答いただくより、一度整理した上で一からご説明しなおされた方がよいかと思います。
 (そのときには具体例を十分に交えて頂くと理解が早いと思います)

> 仕事が小ロット多品種の仕事をしております。

(1) 「小ロット多品種の仕事」って何でしょう?
業種が製造業の方で、システム開発を仕事にされている方ではない、という意味でしょうか?

> 製品については特定の雛形のエクセルのファイルを1品種1ファイルで記録してあります。

(2) 製品の種類(=品種)がたとえば10種あるとしたら、10個の雛形のxlsファイル
(例えば、以下のようなファイル(名前に意味はありません))があるということでしょうか。

雛形1.xls
雛形2.xls
雛形3.xls

雛形10.xls

> この雛形にしてから、
> 登録された製品数が100をこえました。

(3) ここでいう製品数というのは製品の数量ではなく、品種の数のことでいいんですよね?

> 類似品も多いのですが、
> 個別のファイルで登録しているため、
> 比較ができなくなってしまいました。

(4) 以前は比較できていたのですか?できていたなら、どうやって比較されていたのでしょう?
(5) また、そのことは「個別のファイルで登録している」かどうかにどう関係があるのでしょうか?
(6) 個別のファイルで登録とはどういう作業を意味していますか?
 - たとえば、「雛形1.xls」に直接何かを入力する作業をさしているのか
 - あるいは、「雛形1.xls」をコピーして名称を変えて「雛形1から作ったA.xls」(ファイル名に意味はありません)
  を新たに作成し、そこに何か入力するような作業をさしているのでしょうか
 - あるいは、もっと別の作業なのか

> 製品ファイルは、
>
> @マイナー変更も含め、日々更新されます
(7) マイナー変更って何ですか?「何が」日々更新されるのですか?
「何が」というのはkyoさんの言うところの「製品データ」だと思いますが、
  疑問なのかそれが「雛形1.xls」なのか「雛形1から作ったA.xls」なのか、といった
  具体的にはどのファイルなのか、という点です。

> Aファイル名に統一性はありません
> Bファイルはすべてサーバー上の特定のフォルダ内に置いてあります
> C製品データはすべて同じ形式で保存してます

(8) 製品データとは何ですか?↑の例で言うと、雛形1.xls?雛形1から作ったA.xls?その他?
(9) すべて同じ形式とは何を指していますか? ファイルの種類(.xlsといったもの)でしょうか?
それともある種の製品はすべて雛形1.xlsを利用、別の種の製品はすべて雛形2.xlsを利用・・・といったようなことでしょうか?

> VBA等の手法を用いて必要なときにデータ取り込みを行い、

(10) 「データ取り込み」とおっしゃっているのは何から何にですか?

> 必要な項目のみリスト化できないかと考えております。

(11) リスト化っていうのはどういうものをイメージされていますか?

引用返信 編集キー/
■56263 / inTopicNo.3)  Re[2]: 製品リスト作成
□投稿者/ マサヤ (203回)-(2011/01/07(Fri) 09:24:51)
>小ロット多品種
イメージとして、コーラ1ケースが3個とかで、たくさん種類があるってことでしょうか?
[コーラ] コカコーラ、ジョルト、タブクリア、ペプシコーラとか。

>ファイル名に統一性はありません
>1品種1ファイルで記録してあります。
品種名でファイル名を決めているのではないのでしょうか?

>必要な項目のみリスト化
それがExcelで記載されているならば可能です。

質問項目が.Netとなっておりますが、VBAでできますか?という質問なので、
.Netでシステム化するというお話ではないのでしょうか?


引用返信 編集キー/
■56288 / inTopicNo.4)  Re[3]: 製品リスト作成
□投稿者/ kyo (2回)-(2011/01/07(Fri) 22:26:16)
わかりにくくて申し訳ありません。

製造業で、サイズ違い、色違い、材料種違い、入り数等の仕様の組み合わせで

小さいロットでたくさんの種類を作っております。

(違うところがあれば、違う製品として取り扱っています。)

製品のサイズ、色などの情報はエクセルのファイル1品種につき1ファイルで保存されており、

会社のLAN内のサーバーに保管されております。

A.xls
B.xls
C.xls


すべてのファイルは

A1には品名、
B2には値段
A3には仕様
A5にはいり数

と統一した形で保存されています。

これを

品名  値段  いり数  使用
A    12  100  aa
B    23  104  bb 
C    34  105  cc

といった感じのエクセルの一つの表に取りまとめたいと思っております。

必要に応じて最新版に作りなさなければならず、

つど、手入力は難しいと考えております。

何か良い方法があればと思い書き込みました。

わかりにくくて大変申し訳ありません。

妙案があればご教授願います。





引用返信 編集キー/
■56292 / inTopicNo.5)  Re[4]: 製品リスト作成
□投稿者/ よねKEN (658回)-(2011/01/07(Fri) 23:42:49)
No56288 (kyo さん) に返信
> わかりにくくて申し訳ありません。

説明しなおして頂いてやりたいことは十分わかりました。
それで、Excel VBA(Excel マクロ)で実現するにあたってどういったところがわからないのでしょうか?

おおまかな流れを書くと以下のような手順で考えていけば実現できると思います。
【準備】
・1つの表にまとめた結果を出力するxlsファイル(「まとめ用xlsファイル」と呼ぶことにします)を用意します。
・「まとめ用xlsファイル」には「まとめ用シート」を用意し、
その先頭行には「品名」「値段」「入数」「使用」というテキストをあらかじめ設定しておきます。
※Excel VBAの処理はこのxlsファイルに書きます。

【Excel VBAでの処理の流れ】
(1) 指定のディレクトリ(会社のLAN内のサーバーの保管場所)の直下のxlsを調べます。
(A.xls、B.xlsといったファイルパスの情報を配列などに一覧化します)

(2) 調べ上げた個々のxlsファイル一つ一つに対して以降の処理を行います。
(個々のxlsファイルのことを「処理対象のxlsファイル」と呼ぶことにします。
今何ファイル目を処理しているかという値をNとします。)

(3) 「処理対象のxlsファイル」の該当シートから品名(A1セル)、値段(B2セル)、仕様(A3セル)、入数(A5セル)の値を取得し、
「まとめ用xlsファイル」の「まとめ用シート」の(N+1)行目のA列から順に品名、値段、仕様、入数をセルに設定します。

(4) (1)で一覧化したファイル数分だけ(3)を繰り返します。

> 必要に応じて最新版に作りなさなければならず、
>
> つど、手入力は難しいと考えております。

最新版にしたいときには都度、このExcel マクロを実行しなせば最新のリストになります。

引用返信 編集キー/
■56294 / inTopicNo.6)  Re[5]: 製品リスト作成
□投稿者/ やじゅ (1810回)-(2011/01/08(Sat) 02:31:04)
やじゅ さんの Web サイト
> ■No56288 (kyo さん) に返信

複数のExcelファイルを集約して1つのExcelファイルにするWHSスクリプトを作って公開してあります。
使い方とファイルは、http://blog.yaju.jp/200810/article_18.html

入力するシート番号は1からになります。
今のところ拡張子が"xls"のみ対応になっていますが、プログラムの中で"xls"→"xlsx"にすれば新しいExcelファイルにも対応できると思います。




引用返信 編集キー/
■56359 / inTopicNo.7)  Re[6]: 製品リスト作成
□投稿者/ kyo (3回)-(2011/01/11(Tue) 21:08:27)
お世話になっております。

いろいろとありがとうございます。
ご教授いただいた内容を週末に考えてみました。
というか、net上で似たようなものを組み合わせて作ってみました。

> 【Excel VBAでの処理の流れ】
> (1) 指定のディレクトリ(会社のLAN内のサーバーの保管場所)の直下のxlsを調べます。
> (A.xls、B.xlsといったファイルパスの情報を配列などに一覧化します)
>


この部分は以下で対応できているのではないかと考えております。

Sub MakeFileList()

Target = InputBox("ディレクトリ名を入力", "ディレクトリの指定", "\\a0nd155\△\△△△△ファイル")

Set FS = CreateObject("Scripting.FileSystemObject")
Set Fol = FS.GetFolder(Target)
Set Fil = Fol.Files
ThisWorkbook.Sheets("Sheet1").UsedRange.Delete

'見出しを付ける
ThisWorkbook.Sheets(1).Range("B2") = "ファイル名"
ThisWorkbook.Sheets(1).Range("C2") = "ファイル種別"
ThisWorkbook.Sheets(1).Range("D2") = "最終更新日"
ThisWorkbook.Sheets(1).Range("E2") = "説明"
ThisWorkbook.Sheets(1).Range("B2:E2").Interior.Color = RGB(0, 0, 0)
ThisWorkbook.Sheets(1).Range("B2:E2").Font.Color = RGB(255, 255, 255)
ThisWorkbook.Sheets(1).Range("B2:Es2").HorizontalAlignment = xlCenter

i = 3
For Each Fx In Fil
'ファイル名
sFile = Fx.Name
'ファイル名の書き出し
ThisWorkbook.Sheets(1).Cells(i, 2) = sFile
'ファイル種別
sFType = Fx.Type
'最終更新日時の書き出し
ThisWorkbook.Sheets(1).Cells(i, 3) = sFType
'最終更新日
sLMod = Fx.DateLastModified

ThisWorkbook.Sheets(1).Cells(i, 4) = sLMod
i = i + 1
Next
End Sub



が、以下の部分は、操作のイメージが湧かず、
ご教授いただいた処置ができませんでした。
今のところ、sheet1にファイル名の羅列はできております。
そこから先ですが、処置についてヒントだけでも教えていただけないでしょうか。



> (2) 調べ上げた個々のxlsファイル一つ一つに対して以降の処理を行います。
> (個々のxlsファイルのことを「処理対象のxlsファイル」と呼ぶことにします。
> 今何ファイル目を処理しているかという値をNとします。)
>
> (3) 「処理対象のxlsファイル」の該当シートから品名(A1セル)、値段(B2セル)、仕様(A3セル)、入数(A5セル)の値を取得し、
> 「まとめ用xlsファイル」の「まとめ用シート」の(N+1)行目のA列から順に品名、値段、仕様、入数をセルに設定します。
>
> (4) (1)で一覧化したファイル数分だけ(3)を繰り返します。

引用返信 編集キー/
■56370 / inTopicNo.8)  Re[7]: 製品リスト作成
□投稿者/ よねKEN (663回)-(2011/01/12(Wed) 09:04:46)
あまり時間がないので簡単にヒントだけ。

No56359 (kyo さん) に返信
Fxで取得したxlsファイルのパスを利用して、
Workbooks.Openメソッドでブックを開きます。

> 'ファイル名の書き出し
> ThisWorkbook.Sheets(1).Cells(i, 2) = sFile

開いたブックに対しても上記のような処理ができますので、
開いたブック.Sheets(1).Cells(x, y)
のような形で

> 品名(A1セル)、値段(B2セル)、仕様(A3セル)、入数(A5セル)

所定のセルの値を取得しましょう。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -