• 締切済み

アクティブな(開かれた)エクセルとリンクするようなプログラム

エクセル上で、別のアドインがリンクを更新しています。 そのような状況下で、セルの数値が条件を満たしたときに、エクセルのボタンを押すというようなプログラムを作りたいのです。 VBで作るのが良いのでしょうか? DelphiのフリーやC言語ではそのようなことは出来ないのでしょうか。 また、プログラミング言語の構造や意味が深く理解で来ていないため、 「なぜ、C言語ではエクセル上のプログラムができないのか」というような事が解りません。 どなたか根本的な部分の説明をしていだだけませんでしょうか。 尚、どの プログラムを利用するのが なぜ いいのかという部分もご教示いただけたらと思います。

みんなの回答

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

そのようなプログラムがDelphiやC/C++で作成できるか、という質問の回答は「できる」です。ただし、VBと比較すると複雑で面倒です。 VBで作るのが良いかどうかは場合によりますが、今回の質問者さんの場合はおそらくそれが良いでしょう。その理由は、今回の質問の目的(の一部)である「アクティブなプログラムとリンクする」という操作に関する前提知識が、DelphiやC/C++で作成するよりもVBで作成するほうが少なくて済むからです。

thisis2wakei
質問者

補足

ありがとうございます。 現在、私はCを用いて、バッチ処理用のExEファイルを作ることは出来ます。 ただ、それをエクセル上で動かすという概念が理解できません。 Excel上に、Cで作ったプログラムを埋め込む事が可能なのでしょうか。 アドインとか、クエリーとか、ODBC?とかいうのが関係してくるのでしょうか。 VB言語はマクロの記録ボタン経由でしか操作できないため、 正直、マクロなどを見ても、良く解りません。 また、エクセルを使うにはこれでないとダメなのかと思わされてもいました。 エクセル上で動く何かのプログラムの中に、 その中に、ExEファイルを取り込み、 エクセル上の指定された範囲のセルを監視(getsやfgets関数を用いる?)し、 指定したセル上に送り(print関数)、エクセルボタンを押す。 という、動作が可能なのでしょうか。 エクセルと送受信する(のでしょうか?)部分が全くのなぞです。 どのような部分を理解すれば可能となるのでしょうか。 お知恵を拝借できればと思います。

関連するQ&A

  • VB2008 Excelにデータ出力

    VB2008で、Timerで更新されるTextBoxの数値をExcelに順次出力する(セルA1に出力したら、次の値をA2に出力、・・・)プログラムを作りたいのですが、どんなソースにすればよいか分かりません。 Web検索もしましたが、キーワードが悪かったのか、適したサンプルも見つかりませんでした。 VB Form上のTimerでTextBoxの数値を更新する部分はできていますので、指定のフォルダ内のExcelを開いてデータをセルに出力する方法を教えてください。 参考URLなどもあれば教えてください

  • オブジェクト指向プログラミング学習向けのサンプルプログラム

    「これは参考になるよ」というような、 オブジェクト指向プログラミング学習向けのサンプルプログラムを教えていただけませんか? 言語はDelphiです。 Delphiに限らず、他言語(Java、C#、C++あたり)でも結構です (移植しますので、出来ればCUI、GUIが少ないものが理想です) よろしくお願いいたします。 Delphiにてオブジェクト指向プログラミングを学んでいます。 書籍等で、基本的なことは学びました。 理解度およびスキルを上げるために、実際にプログラミングしたいと思います。 (入門書を利用してや、 自分で考えながらのテスト的なプログラミングには限界を感じてまして^^;)

  • エクセルのセルの数値(随時更新)を抜き出したい

     パソコン1で表示中のエクセルシートのセルの数値を、LAN接続の他のパソコン  PC2で数値を取得・計算して、エクセルなどで表示したい。   ・パソコン1のシートは開いている状態で、セルの数値は随時更新されています。   (232C接続のデータロガー装置のデータにリンクして、数値が更新されています)    ですので、「読み取り専用」で開いても、数値が更新されません。  ・データロガーは旧タイプで、ソフトの機能ではCSVファイルなどは吐き出せません。  ・ファイルが開いたままなので、VBでは抜き出せない・・と以前VBエンジニアに言われました。  <実行したい事>   1、セルの数値を抜き出す(他のPCから操作して)   2、個数は10個程度   3、抜き出した数値を計算(変換など)してエクセルに表示したい     私、VBが書けません。labview、LINGO(adobe director), エクセルのマクロは 少しは書ける程度でしかないのですが    方法の概要だけでも教えていただければ助かります。      よろしくお願いします。      

  • エクセルのBOOK間のリンク

    エクセルでBOOK1とBOOK2があります。 BOOK1のデータが更新されるたびにBOOK2にそれが反映されるようにしたいのですが、そういうことはできるでしょうか。 また、BOOK2には、BOOK1のセルに数値が入力されているものだけを反映させたいのです。 例えば、BOOK1のセルA1~A5で、数値がセルA3とA4にだけ入力されたとします。そうしたら、BOOK2の表のセルC5、C6にそれと同じ数値が反映されるようにしたいのです。 よろしくお願いします。

  • Excelのリンクについて

    Excelのリンクの更新について教えて下さい。 ファイルがA,B,Cと3つあります。 ファイルAのセルA1は「ファイルBのA1」を参照してます。ファイルBのセルA1は「ファイルBのA2+ファイルCのA1」と足し算してます。 (れい:ファイルBのA2入力値「10」、ファイルCのA1入力値「100」とでもします。この時、ファイルAのA1は「110」ですよね。) この状態でファイルA、Bを保存して閉じ、ファイルCのセルA1の値を更新し保存をしてファイルCを閉じます。(れい:ファイルCのA1入力値を「100」から「200」に更新。) 次に、ファイルAだけを開きます。 ファイルAのセルA1の値は「110」でした。 この時に、ファイルCの更新をファイルAに反映することって可能ですか??(ファイルAのセルA1の値を「210」にしたいです。) (1)ファイルAを開くときに「リンクの更新・・・はいorいいえ」メッセージで「はい」を選択してもファイルCの更新まではしてくれませんでした。 (2)ファイルAを開き、「編集」-「リンクの更新」をしてもやはり駄目でした。 (3)ファイルを3つ開いてリンクの更新なりするとOKでした。 上記のように試してみたのですが、ファイルAだけを開いてファイルCの更新を反映させる方法を教えて下さい。 大変初歩的な質問で申し訳ないのですがよろしくおねがいします。

  • エクセル リンクの設定

    エクセルのブック間のリンク設定でどうしてもうまくわからない事があるのですが、解決方法がわかる方がいらっしゃったら教えて下さい。 4つの違うブックから、リンクをひいているファイルがあるのですが、 このファイルを開くとき、必ず「更新できないリンクが1つ以上含まれています」というメッセージが出ます。 そこで、リンクの編集で、リンク元の状況を確認すると、どのリンクも「OK」となっています。セルの数値もきちんと更新されています。 起動時の設定も「メッセージを表示せずに、自動で更新する」設定にしてるのですが、毎回「更新できない…」と出てしまいます。 ちなみにエクセル2003を使用しています。 このメッセージが出る原因と解決方法を教えて下さい><

  • リンクデータが更新できない (エクセル2010)

    Access2003から出力したエクセルシート(A)をもとに、そのエクセルを他のエクセルシート(B)の所定のセルとリンクさせようと思っていますが、うまくいきません。 (A)はデイリーで更新される生データですが、セル位置は常に固定され、その中身や数量が変動します。 (B)は10枚以上に及ぶ所定のフォーマットで、ビジュアル的な加工がなされています。 なお(B)の構造上、Accessからじかに(B)に放り込むことは不可能(だと思っています)なので、一旦(A)として生データをエクセルに変換してから、(A)→(B)にリンクというのが目論見です。 まず(B)の各セルを(A)の該当セルとリンクさせました。 次に(A)の数値をマニュアルで変更したら、リンクしている(B)も当然更新されました。 しかしAccessから(A)の最新データを落としてから(B)を開いてデータソースへのリンク「更新する」ボタンを押しても、(B)が反応せず「ファイルを読み込めません」というエラーメッセージが出ます。 当然(B)の中のデータも更新されていません。 Access2003から出力される(A)がxlsなので、(B)もxlsの拡張子で作りましたがダメです。 何か解決する方法はありませんでしょうか?

  • プログラミングとコンピュータについて

    プログラミングとコンピュータについて 大学でプログラミング(C言語)を勉強をしててふと思いました プログラミングでどうやってCPUとかメモリとか、そういったコンピュータの深い部分を操作できるのでしょうか? すみません 抽象的でどう説明したらいいかわかりません 簡単なプログラミングだったらカレンダーとか電卓とか作れますが、これらのプログラムってCPUとかメモリとかOSとかの根本的な部分があればこそ成り立つものですよね 例えばCPUの状態を表示するソフトウェアだったりレジストリを削除するツールだったり、こういうプログラムってプログラムが直接コンピュータの根本的な部分と直結してるってことですよね? つまりハードとソフトの境目がどのような構造なのかよくわからないって感じですかね ソフトを作るのはプログラミングだけどソフトとハードを繋げるのもプログラミング ゲームとかスクリーンセーバーとか電卓とかを作っても、これでどうやってwindowsやLinuxは作れたんだろう?って思ってしまいます C言語や他のプログラミング言語を学んでいけば自ずと理解できるものなんでしょうか? 無知は承知で質問します どうにも不思議で、しかし腹立たしくてむずがゆいです 誰か教えてください、お願いします

  • プログラム全般について

    お世話になります。素人です。 プログラム、BASIC、C、VB、PERL、HTMLなど 作成するときの根本なのですが、作成するときはエディタ?なるものを 使うようなことを耳にしますが、コンパイルする、走らせるための モノと考えればよいのでしょうか? いきなり、簡単でも難しくても、wordやテキストエディタなどで 言語を作成しても動作確認、プログラムを走らせることは出来ま せんよね? そのために専用の各言語用のエディタ?コンパイラ?なるものが 必要になると考えればよいのでしょうか? いきなりC言語でプログラムを作れ、などなど根本的に何から? がよくわかりません。 その辺りをよくご存知の方、差し支えなければご回答をお願いします。

  • Excelで、少しプログラムのようなことがしたいのですが・・・

    『A.csv』と『B.xls』のように、別々のexcelfile(または、sheet)で、どちらにも同じ項目の『C』という列があるとします。 その列の入力されているデータ(数値)が一致したとき、『B.xls』のfile(または、sheet)の『C』という列のセルにそのデータ(数値)記入させる。 …みたいなプログラムをExcelでしたいのですが、できるでしょうか?

専門家に質問してみよう