この人頭いいなと思ったエピソード

 パソコン1で表示中のエクセルシートのセルの数値を、LAN接続の他のパソコン
 PC2で数値を取得・計算して、エクセルなどで表示したい。
 
・パソコン1のシートは開いている状態で、セルの数値は随時更新されています。
  (232C接続のデータロガー装置のデータにリンクして、数値が更新されています)
   ですので、「読み取り専用」で開いても、数値が更新されません。
 ・データロガーは旧タイプで、ソフトの機能ではCSVファイルなどは吐き出せません。

 ・ファイルが開いたままなので、VBでは抜き出せない・・と以前VBエンジニアに言われました。
 <実行したい事>
  1、セルの数値を抜き出す(他のPCから操作して)
  2、個数は10個程度
  3、抜き出した数値を計算(変換など)してエクセルに表示したい
 
  私、VBが書けません。labview、LINGO(adobe director), エクセルのマクロは
少しは書ける程度でしかないのですが
   方法の概要だけでも教えていただければ助かります。  
   よろしくお願いします。
  

  

A 回答 (3件)

http://www.symantec.com/ja/jp/pcanywhere

のような「リモートアクセスソフト」を使うのも手段の一つかもしれません。


ちなみに
> ロガーのエクセルファイルにマクロを組んで入れても大丈夫かどうか
そのやり方でも良いと思いますが、
「同じパソコンなら保存していないが開いているファイルからでもデータは抜ける」ので、
別な「抜き取り用のブックを作成し、同時に起動」させておいても良いと思います。



ついでに、
> 2秒ぐらいに1回抜き出す
とのことのようで。

Sub This_MACRO()
Dim myTime As Date
  myTime = Now() + TimeValue("00:00:02") '指定時刻(現在時刻の2秒後)
    With Range("A1")   '処理(先はサンプル、A1に現在時刻を表示)
      .Value = Now()
      .NumberFormatLocal = "hh:mm:ss"
    End With  
  Application.OnTime myTime, "This_MACRO" 
  '指定時刻が来たら「This_MACRO」というマクロ(つまり自身)を実行
End Sub

こんな感じで無限ループできたりします。
何かの参考までにどうぞ。
    • good
    • 0
この回答へのお礼

お礼が遅くなりすみませんでした。
ありがとうございました。
 「別なブックを作成」!!なるほど!そうなんですね。
 教えていただいてホントに助かりました。
マクロも買いていただいて大変助かりました。
この方法でやらせていただこうと思います。
ありがとうございました。

お礼日時:2013/09/06 01:13

>パソコン1で表示中のエクセルシートのセルの数値を、LAN接続の他のパソコンPC2で数値を取得・計算して、エクセルなどで表示したい。


パソコン1で表示中のデータはExcelシートの特定セルと言うことでしょうか?
常識では考えにくいのですがリアルタイムでデータロガーからExcelシートに取り込めるのであれば同時にCSVファイルへ定時書き出しが可能なはずです。
業務用のシステムと推察しますので計測システムの専門業者に委託してデータ処理用のプログラムを作成してもらうことをお勧めします。

>・パソコン1のシートは開いている状態で、セルの数値は随時更新されています。
と言うことは時間間隔でパソコン1がデータロガーから読み取ると思われます。
またはデータロガーから一定時間間隔でRS-232Cへデータを出力し、パソコン1はRS-232Cポートにデータが届いた時のフラグで読み込む仕組みになっていると思います。
モニターに表示することとファイルにデータを書き込むことはパソコン1でできるはずです。

>・データロガーは旧タイプで、ソフトの機能ではCSVファイルなどは吐き出せません。
推測ですがそのデータロガーは計測データの読み取りとRS-232Cポートへの吐き出しのみで記録機能が無いと思います。
従って、パソコン1はRS-232Cポートから取り込むソフトとExcelの連携で特定セルへ表示しているものと思います。
VBに限らずC++等のプログラミングでデータロガーから計測データを取り込むことが難しくないと思いますので、計測システムの専門家であれば容易に処理できると思います。

>1、セルの数値を抜き出す(他のPCから操作して)
PC2からPC1(パソコン1)の作業中Excelデータを盗聴することは高度なハッキングになり簡単ではありません。

>2、個数は10個程度
1回の読み取りデータが10個程度と言うことでしょうか?
時間間隔はどの程度ですか?(秒/分/時)
1台のデータロガーで1回に10ポイント程度の処理は無理のない範囲かと思いますが、測定間隔が問題になるかも知れません。

>3、抜き出した数値を計算(変換など)してエクセルに表示したい
PC2ではPC1と違う目的でデータ処理をしたいということですよね?
計測・データ処理システムとして専用ソフトが必要と思います。

このサイトでは考え方のアドバイス程度になるかと思われます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
 ロガーメーカーにも確認して、CSV書き出しができるバージョンとか、オプションなど
 を聞いてみたいと思います。(本体が古いので、どうかわかりませんが)
   
 開いているファイルから抜き出すのは「高度なハッキング」ほど困難なことは知りませんでした。
 ・・いろいろ調べても何も載っていなかったはずなんですね。そうですよね。

 ロガー自体のサンプル周期は数百ミリSECで50個程度のサンプリングなのですが 
 欲しいのは、数値は10個程度を、2秒ぐらいに1回抜き出すレベルなので
 ロガーソフトとしては簡単だと思うのですが・・・。
 とりあえずメーカーに確認してみます。
 ありがとうございました。

お礼日時:2013/09/01 21:23

> ファイルが開いたままなので、VBでは抜き出せない・・と以前VBエンジニアに言われました。



この一言に尽きるでしょう。
保存していないなら、他のパソコンで参照するのかなり手間です。


逆に言えば、保存さえしてしまえば他のパソコンから参照するのは容易です。

> ソフトの機能ではCSVファイルなどは吐き出せません。

これを「パソコン1」のエクセルにやらせてしまえば良いです。
つまり流れとして
・パソコン1の数値が更新される
・パソコン1のエクセル上で他のファイルに書き出す
・パソコン2で上記ファイルを読み込む
コレで疑似的に実現可能だと思います。

パソコン2側のエクセルブックには、
自動生成されたファイルへのセル参照でも入れておけば
当該ファイルを開かずに編集・更新(F9キー)が可能です。

この回答への補足

早速なご回答ありがとうございます。
「パソコン1」のエクセルにやらせて・・・とは
 表示させるエクセルファイルにマクロを組んでおいて、更新しているセルの数値を
 一定間隔で抜き出して、他のファイルに保存するように(自動実行)して・・・という方法
 でしょうか?
 ・・・このロガーのエクセルファイルにマクロを組んで入れても大丈夫かどうか
    確認してからやってみたいと思います。

 結論としては、表示しているエクセルファイル以外では、開いているファイルからは
  データを抜くのは超困難・・と言うことですね。
 
 

補足日時:2013/09/01 21:09
    • good
    • 0

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


おすすめ情報