プロが教えるわが家の防犯対策術!

Excelに、部品の注文情報を入力する一覧があります。

そこには、
・ID番号、A列
・部品名、B列
・品番、C列
・出庫日、D列
・担当者名、E列
などの列があります。

このファイルを使用している人達が複数いるため、問題は、Aさんが使用している時に、Bさんが開いて入力すると、保存できず、閉じてしまい、入力内容が更新されないことです。

この問題を解決したいので、{部品の注文情報を入力する一覧}エクセルファイルを開いて、新規作成ボタンをクリックした時に次のようなことをしたいです。

・一覧のデータをバックアップとして保存するbackup.txtファイルを使用する。
 【データ形式】
 A列から、E列までのデータを「,」でつないだ文字列を、ID番号をキーにして、backup.txtに保存する。
・一覧のデータが保存されなくても、backup.txtには必ず、入力した内容を保存したい。
・新規作成ボタンをクリックした時に、あたらしいID番号を作成するが、backup.txtのID番号の最大値+1 の番号を新規の番号として使用したい。
・E列に値を入力し終わった時点で、backup.txtファイルのデータのなかから、同じID番号の行をみつけて、そこのデータを、A列からE列まで入力した値を「,」でつなげた文字列にして、backup.txtに保存しなおす。
 backup.txtの中に、同じID番号が見つからないときは、新規でその行のデータをbackup.txtに追加する処理をする。

このプログラムの作成の仕方についてご教授してくださる方がいたら、ぜひ、教えていただきたいです。

よろしくお願いします。

A 回答 (4件)

根本的に、こういう処理をエクセルでやろうとするのが間違いです。


マルチユーザでデータ入力、更新処理の可能なアプリを使ってください。
    • good
    • 0
この回答へのお礼

それでもやりたいんです。

お礼日時:2018/01/14 11:11

「共同編集」(新しい機能)か「共有ブック」(古い機能)は?

    • good
    • 0
この回答へのお礼

それもありですが、プログラムを組んでるので、もしかすると、共有ブックが難しいかも?

お礼日時:2018/01/17 19:34

基本的に編集したいファイルは自分のパソコンのデスクトップに持ってきてそれを編集


編集後名前
ファイル名-氏名-YYYYMMDD-HHMMSS.xls

File-Tanaka-200180114-160600.xls
のようにして
このファイルを元のところにコピー

編集前と編集後印刷して修正のところにはマークをする。
それをファイル化する。

まだ意味が不明です。

だから、CSVファイルで保存すればコンマで区切られたファイルになるの。

あなたが
要望するプログラムを作成すると数十万円するのだから、ここで質問しても無駄だと思います。
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2018/01/17 19:36

>この問題を解決したいので


だから
>・一覧のデータをバックアップとして保存するbackup.txtファイルを使用する。・・・
と問題を解決する方法を考える。
これをアルゴリズムと呼びますが、
今回の複数のパソコンから同時入力する方法として、
この手法のプログラムを作成するのは大変です。
プロの方に依頼しても、別の方法を勧められるはずです。
例えば
・・・新規作成ボタンをクリックした時に、あたらしいID番号を作成するが、backup.txtのID番号の最大値+1 ・・
Aさんが新規IDで作業中、保存前に
Bさんが新規作成ボタンをクリックした場合 など

その方法は
アクセスなどデータベースの活用です。
あえてエクセルを活用する部分を増やすのであれば
ファイルサーバーなど
・共有フォルダーにアクセスでデータベースのみ作成する。
・それぞれのパソコンにマクロ付エクセルファイルを準備
エクセルからデータベースを参照したり、データの追加をするプログラムを組み込む。

共有するデータベースをエクセルやテキスト(CSV)などで準備してもかまわないのですが
データの追加、修正の度に上書き保存する必要なあるので、時間的な部分で不利です。
アクセスがインストールされているパソコンが一台、データベースが作れるレベルの方が一人
必要ですが・・・
    • good
    • 0
この回答へのお礼

やはり、アクセスが必要なのですかね・・・
エクセルだけでは無理というものですか・・・
仕方がないです。
ありがとうございました。

お礼日時:2018/01/17 19:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!