• 締切済み

エクセルのセルからVB等で作成したアプリの変数を参照するには

piyo2000の回答

  • piyo2000
  • ベストアンサー率49% (144/293)
回答No.4

>楽天証券のリアルタイムスプレッドシートでは >セルで"=app|code!field"のような形で情報を参照できるので これはExcelの「作業中のコンピュータにないアプリケーションのデータとのリンクを設定する数式について」というヘルプトピックを読んでもらえると分かると思いますが、DDE(Dynamic Data Exchange)を使った仕組みですね。 この場合RSS.EXE(リアルタイムスプレッドシート)がDDEサーバとして動作していますが、これと同じことをしたいなら、作成するアプリケーションにDDEサーバの機能を持たせてやれば良いだけです。 詳しくは「DDE」「DDEサーバ」などでWeb検索してみましょう。VC++が多いですがDDEサーバのサンプルが見つかるはずです。 >VBのアプリからセルをいじると、パフォーマンスが悪く困っています。 それはやり方(ロジック)が悪いのでしょう(^^; 確かに、一つのセルに書き込むだけであれば時間はあまり掛かりませんが、数が増えると(それを繰り返すだけだと)遅くなってしまうこともありますからね。 ブロックで書き込むときはタブ区切り&改行区切りにするとか、後述するExcelアドインを利用するなどパフォーマンスアップの方法は幾らでも考えられます。 #3さんがおっしゃっているように、こっちのほうが王道というか普通の方法ですね。 (ソースを見たわけではないので憶測ですが)RSSではExcelアドインを登録する必要がありますが、このアドインが定期的に対象となるフィールドの更新をチェックしているだけだと思いますので、変数が更新されたタイミングで変更されるわけではないと思われます。 「アプリの変数を参照する」というのは#1さんがおっしゃっているように「そういう仕組み(インターフェイス)が(参照される側に)無いと無理」です。 前述されてるようにDDEやCOM、ファイルマッピングのようなプロセス間通信が有名ですね。 # DDEを使う人は殆どいませんが・・・(^^;

momonga_excel
質問者

お礼

ご回答ありがとうございます。 DDEサーバですね。ちょっと試してみます。 たしかにセルひとつであれば、それほど問題ないのでしょうが、できるだけたくさんの情報を渡したい(100個ぐらい)ので、そもそも無理があるのかも知れません。 それが1秒間に数回更新ですから。 データを絞ってみたり、DDEを調べてみたりします。 DDEサーバにするとして、重要な項目の更新時にエクセル側のファンクションを呼び出して、そのときだけエクセルからDDEで取りにこさせるといった感じでもいけるかもしれません。 うまく行ったらまたご報告します。

関連するQ&A

  • エクセル セル参照の変数

    エクセルの使い方で質問です。例えばA8というセルを参照する時は fx=A8 として関数の欄に記入する事で参照すると思うのですが、このA8の「8」という箇所を変数にして別のセルに記入した数字を入れる事は出来るのでしょうか。例えば別のセルに64という数字を入れるとこのA8がA64としたいと考えています。

  • エクセル 参照するセル番号を変数として扱えますか

    相対参照だと思い通りにできないので,自分の考えたやり方で参照したいのです。 例えば,あるセルにリンクを貼って, =$K4 と定義したとします。以後,4だけを1ずつ増やしたいのですが,=$K(4+S)というように,座標を変数のようにあつかうことはできないのでしょうか。何か良い方法があったら教えてください。

  • Excelを2つ起動してセルを参照する方法

    ご質問させていただきます。 Excel2007を2つ起動して、他方のシートのセルを参照したいのです。 具体的に説明いたしますと、1つ目のExcel2007をExcel(1)と呼び、2つ目のExcel2007をExcel(2)と呼ぶことにします。Excel(2)のsheet1のA1セル~A48セルまでcalculateイベントでリアルタイムに変化する値が入っています。それらの値をExcel(1)のsheet2のB1セル~B48セルで参照したいのです。 できるのでしょうか? どなたか教えていただけないでしょうか? よろしくお願いいたします。 もしVBAを使わなくてもできるようでしたら、そちらの方法も教えてください。 よろしくお願いいたします。

  • c言語で作成したデータをwindowsのアプリ(VB6で作成)で読み取りたいのですが

    VBで作成したアプリの中の変数の値をC言語で作成したプログラムで参照したり、C言語の変数(メモリの値)をVBのアプリで参照したいのですが、どのようにすればいいのでしょうか。 よろしくお願いします。

  • Excelセル参照方法(初心者で申し訳ありません)

    ExcelにてAファイルとBファイルを別々に立ち上げBファイルのセル内容をAファイルにて見たいのですがどのようにしたらよいか解りません。 Aファイルはアドイン関数?(名前これでいいのかわからないです?)で内容がリアルタイムで変わる為VBマクロにてある秒数ごとに変わる 情報をサンプリングしサンプリング内容にて処理をおこないたいのですが, VBマクロ(ウエイトを入れた無限ループ)を実行するとAファイルのセル内容が変わりません。当たり前ですね。 そこでBファイルにてマクロを実行しBファイルのセルの内容をAファイルにて参照して処理をおこないたいと思っております。 ただ基本的なところ参照のしかたが解りません。HELPをみてもgooの質問をみてもみあたりません 別々に立ち上げたファイル間でのセルは参照できないのでしょうか?初歩的な質問で申し訳ありませんが よろしくお願いします。

  • エクセルで飛び飛びのセルを参照するには

    エクセルの使い方で飛び飛びのセルを参照する方法を教えてください。 例えば、sheet1のA1セルにsheet2のA1セルをsheet1のA2セルにsheet2のA15セルをsheet1のA3セルにsheet2のA30セルを参照させるにはどうしたらいいのでしょうか。よろしくお願いします

  • エクセルのセル参照、一つずつ参照セルをずらしていきたい

    エクセルのセル参照の方法について教えてください。 2つのシートがあって、 ひとつのシートにはC4,D5,E6…というように行と列がひとつずつ増えていくところに値が入力されています。 このシートから、C4,D5,E6…のセルの値を取り出して 別のシートのA1,A2,A3…に縦に並んで表示させたいのですが、どのようにセルを参照させればC4,D5,E6…という 行と列がひとつずつ増えていくセルを参照できるでしょうか? よろしくお願いいたします。

  • フレームにExcelを表示させて、セルの情報を取得

    フレームにExcelを表示させて、セルの情報を取得したいのですが。 環境はVB2005です。 変数からテキストに表示させるのはできますが、 どうしてもWebBrowserのようにForm上に表示できません。 こういったことは、APIを使うものだと思い込んでいますが、 使わなくてもできるのでしょうか?また、APIのほうが問題が起きにくい、 構造やプログラミングが単純などメリットがあるのでしょうか? 下記画像のように、Excelを表示させる方法をご教授お願い致します。 できれば、変数にセルの情報を入力するところまで教えていただけると幸いです。 こちらのページの画像を参照お願い致します。 (実現したい様子の画像です。ボタンを押すと、Excelのセルの情報を取得、 変数に代入して、変数の内容をテキストに出力といった感じです。) http://blogs.yahoo.co.jp/tokyokeeper/1036127.html

  • Excelのセルの参照について

    Excelでセルを参照するにはB3やA7などのように指定しますが、以下のような参照はできるのでしょうか? 1、任意のセルに何らかの数字が入っている状態で 2、その数字を行として参照する。 たとえばA7に3という数字が入っているとします。 そのA7の値を行番号としてB3やC3を参照する、といった具合です。 あまりうまく説明できないのですが、情報が不足していましたらまた補足します。 よろしくお願いします。

  • VBからExcelのデータを参照するには?

    VBからExcelのデータを参照するには? ExcelのA列を、参照しようとしています。 このA列には数字も混じっています。 例えば A123 abc 456 qwer のように、4行あったとします。 VBのソースコードは、次の通り --------------------- Dim elSequence(10) As String i = 0 Do Until objSheet.Range("a2").Offset(i,0).Value = "" elSequence(i) = objSheet.Range("a2").Offset(i,0).Value i += 1 Loop --------------------- 問題は、Excelのセルに「数字だけの場合(上記の例で4行目)」で、VBはこれを、文字列として扱わずにDouble型と認識してしまいます。 例え、Excelのセルを、プロパティの文字列指定としても「456」はDouble型になってしまいます。 Excelから受け取ったデータを、文字列への変換はどのようにしたら良いですか。 参考になりそうなWeb等でも構いませんので、教えていただけませんか。