- 締切済み
エクセル シートを相手に送信することは可能?
各ジャッジがジャッジペーパーに選手の採点を付けます。競技が終わったら、ボタンでそのシートをsyukei_ver2.0ファイルへ送ることは可能でしょうか? 例 ジャッジ4名に4台のパソコンを用意します。ジャッジ同士採点を見られないようにします。 ジャッジ1 採点ファイル1.xlsm judge1シート ジャッジ2 採点ファイル2.xlsm judge2シート ジャッジ3 採点ファイル3.xlsm judge3シート ジャッジ4 採点ファイル4.xlsm judge4シート Wi-Fi環境で共通を作成する、もしくはハブで複数のパソコンをメインパソコンにつなぐ。 メインパソコンはsyukei_ver2.0.xlsmを入れておく。 各ジャッジが採点を入れたjudge1シートをボタンでメインパソコンのsyukei_ver2.0.xlsmのシートへ送る(コピー)。 その送信する方法がありましたら教えて下さい。 宜しくお願いします。
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- kkkkkm
- ベストアンサー率66% (1719/2589)
ふと思ったのですが、シートをコピーしなくても、メインのPCにそれぞれの共有フォルダを作成して、アクセス制限設けて、各々のブックを置いておき、それをジャッジのPCからアクセスして開いて入力してもらう。ブックにパスワードは不要。 メインのブックは、ジャッジごとにシート分けして、個々のセルで別ブックへの参照を数式で書いとけばそれでよくないですか。
- kon555
- ベストアンサー率51% (1842/3559)
>>シートを送信するコード 「シートを送信するコード」を組む必要はありません。 1.パスワードつきのブックを開く https://excel-toshokan.com/vba-excel-open-password/ 2.シートを別ブックにコピーする https://www.relief.jp/docs/excel-vba-sheet-copy-to-another-book.html 3.ブックを保存して閉じる http://officetanaka.net/excel/vba/file/file03.htm 以上で各ジャッジのシートを集計用シートにコピーできますので、これが「送信」にあたります。ネットワーク上にあるPC間であれば、共有フォルダの作成で充分です。 https://navi.dropbox.jp/windows10-shared-folder ただしこの場合は、同時に複数名のジャッジが送信しようとすると、ブックを同時に開く必要が出てきてしまうため、あまり好ましくありません。 なので、集計ブックが既に開かれているかをまずチェックします。 https://vbabeginner.net/ブックが開かれているかチェックする/ ブックが既に開かれているなら「只今データ処理中。少し待って再度送信下さい」などのメッセージを出して処理を終えます。 待ち時間を規定して再送信まで自動にしてもいいですが、そこまでする必要はないでしょう。再度人間が送信ボタンを押せば十分です。
- kkkkkm
- ベストアンサー率66% (1719/2589)
> 「同一のタイミングで複数のジャッジが送信するとエラーの元なので」 ということなので、少々の不安はありますね。 Accessがあれば複数同時アクセスは織り込み済みなのでそのあたり心配のないものができますが、慣れていないと作るのに戸惑うかもしれません。
- kkkkkm
- ベストアンサー率66% (1719/2589)
> 共通ファイルを作って、そこにファイルを置き、メイン担当者がそのファイルを開き、シートをコピペするという手ですね。 共有フォルダです。操作としてはそうなります。動作が信頼できるかどうか不安なVBAより確実です。
- kkkkkm
- ベストアンサー率66% (1719/2589)
No1の方法は駄目で、ボタンでシートをコピーしたければマクロの記録でコードを取得して(syukei_ver2.0.xlsmファイルを開きシートをそこにコピーする)それをボタンに登録すればできると思いますよ。 ただし、シートの保護でパスワード付けておかないと、後からコピー操作で開いた人は先の人のシートが見れる。 複数人が同時にコピー操作をしたらどうなるかとかは試してみないと分かりません。
補足
No2.のおっしゃる通り 「同一のタイミングで複数のジャッジが送信するとエラーの元なので」 ということなので、少々の不安はありますね。
- kon555
- ベストアンサー率51% (1842/3559)
送信という形をとるべきかは別として、お望みのような構造はVBAが使えるなら作れます。 特に書かれてはいないですが、送信後には各ジャッジは自他含めて採点結果にアクセス・修正出来ないようにする仕様と考えますが、よろしいでしょうか? まずメインPCに共有フォルダを1つ作成しておき、全員がアクセス可能にしておきます。 この共有フォルダに「syukei_ver2.0.xlsm」を置いておきます。この時、syukei_ver2.0.xlsmにはエクセル機能のパスワードを設定しておきますが、このパスワードは各ジャッジには連絡しません。 次に個々のPCの採点ファイル1~4のシートで「syukei_ver2.0.xlsmを開いて採点用シートをコピーして保存して閉じる」をマクロ化します。 このマクロの中でパスワードの解除を織り込んでおけば、ジャッジ個人に知らせる事無くパスワードの解除と保存が可能です。 同一のタイミングで複数のジャッジが送信するとエラーの元なので、ブックは排他モードで開いておいて、『他のジャッジが送信中です』程度のメッセージを出す形がいいでしょう。 一番シンプルなのは、各ジャッジにパスワードつきのブックを配布する事だとは思いますが、『送信』というような形をとる事は、上記のような構造をとれば一応可能です。
補足
コメントありがとうございます。 VBA 送信で検索してもメールで送信するコードばかりで、シートを送信するコードが知りたいです。 ヒントだけでも教えていただけないでしょうか?
- kkkkkm
- ベストアンサー率66% (1719/2589)
そんな事をしなくても各ジャッジのファイルにそれぞれパスワードを付けて、メインのPCに共有フォルダを作ってそこにファイルを置いておけばいいだけだと思います。
補足
コメントありがとうございます。 共通ファイルを作って、そこにファイルを置き、メイン担当者がそのファイルを開き、シートをコピペするという手ですね。
お礼
ありがとうございます。 これが近いかなと思います。 http://officetanaka.net/excel/vba/tips/tips170.htm