- ベストアンサー
VBAでエクセル内の情報を他のアプリケーションへ自動入力したいです
業務効率を上げるために、VBAでエクセル内の情報を他のアプリケーションに自動入力させたいです。 入力する情報は、複数の項目があり、固定されています。 できれば、ワンクリックですべての入力フォームに自動入力させたいです。 これらのことは、VBAで実現可能なのでしょうか? また、実現可能な場合、どのようにすればよろしいのでしょうか? VBAを始めたばかりで何が出来て何が出来ないか、あまりわかっておりません。 VBAを習熟している方にとっては、簡単に質問であるかも知れませんが、どうぞご教授ください。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
下記で紹介されているシェアウェアを試されてはいかが? http://okwave.jp/qa5392790.html リンク先で、興味半分でWin32APIによる貼り付けにトライしてみましたが、同じテキストボックスに見えてもハンドル(Windowsがウィンドウやコントロールを識別する背番号の様なもの)が取得できるものと、出来ないものがあり、たとえばOKWaveのページを表示した状態で、上部のアドレス欄には貼り付けられますが、検索ボックスや、ログインのボックスには貼り付けられませんでした。ただ、IEや、MS Officeアプリケーションは、ActiveX Exeとして、独立して動作するだけでなく、他のプログラムから操作できる様に作られていますので、別の方法でVBAから操作できます。#1,#2の方が「他アプリケーションというだけでは分からない」とおっしゃっているのは、そのためです。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
>他のアプリケーションへ 他のアプリケーションとは具体的に何ですか。具体的に書かないと話にならない。それくらい、少数のソフトしか、素人がプログラムでデータをやり取りはできません。そういうソフトにおいて、仕組みが作られ、我々が使えるためには、市販や公開される必要があります。それをやれるのは、そのソフトを知り抜いた(技術的)、ソフト販売会社の一群の技術者で、そのソフトの製品コンセプトに合わない(商業的)と、その製品に搭載されません。他社のもの、個人は製品を改造する権利(権利的)がありませんから。またそのソフトを我々が入手しやすい(有名的)ことが必要です。 具体的に言えば、マイクロソフトのオフィス製品間などが、それの例です。VBAといった仕組みで何とかそのソフト機能と周辺機能に限り、実現しています。ここでは素人が思いつくが、したい単純なことも出来ない機能もたくさんあります。 その基礎のレベルでは、APIなどの情報が公開されているので、仕組みを研究すれば、色んなものを作れるでしょう。 そもそもエクセルは手操作で使う(大衆向けのソフトでかつ商品=大量販売を目指す)もののはずで、プログラムで使う、プログラム部品集では無い。エクセルは勉強0でも入っていける面があり、コンセプト的に表計算というものはなじみやすいので、勉強もして無いのに、直ぐ、あれをしたいという思いが出て、質問も多いが、本来エクセルでやらなければならない必然性はない。 それに初心者は、できるか出来ないか、前もって結論を聞きたがる。 はっきり言えば、やや長期的な勉強次第だというしかなかろう。 もっとプログラム力やソフト全体の視野が広がれば、エクセルとかだけでなく、色んな方法とかが身近になるでしょう。しかしそれらを系統的に教えてくれる学校や情報(本、WEBなど)は極く少なく、普通の人には不可能と思います。 エクセルで、ものを考えているレベルでは、大それたことは考えるなということ。 そういう環境(会社就職)に自ら入って行か無いと、勉強できないでしょう。 VBAでさえ、勉強を持続して、習熟するのは、統計的には1000人に3人とか100人に3人とかしか、行かないでしょう。 不可能ではないが、道は険しく、ほとんどの人は、そのうち他の道(事務系の仕事に就職)を行ってしまって、縁遠くなるのでしょう。 == 質問者に対する結論は エクセルーアクセス、エクセルーワードぐらい以外は 難しい。一般のソフトはプログラム的に閉鎖的(これが原理的に普通なんだ。開始すると、一気に実行して、途中で他のプログラムの介入を受けつけない)。 ーー CADソフトなどでエクセルを意識した、そういう風にプログラムを組んだソフトが在る。意識して、相手がエクセル(の大衆性、便利性)を意識して、連携のプログラムを設計したわけ。 ーー データファイルでの連携性 CSVファイルなどにデータ落として、相手のソフトに読み込ませる方法はあるが、瞬時性に欠ける。相手ソフトでは、手入力か、所定ののファイルを手動で読み込ませるだけで、プログラムで、CSVを読み込ませるプログラムの連携もほとんど造られていない。 手作業では、エクセルファイルの読み込みは出来るよう設計したものはある(年賀状ソフトの住所録など) ーー コピーペをプログラムで使えるか調べる ーー ソフトの上に立って、動かすソフトがある。 uwscなどGoogleで情報を仕入れて、勉強してみる。 ーー 画面連携ソフト。 画面に打ち込んだデータ、画面に他のデータからデータをセットできるソフト、画面に表示されたデータを捉えるソフトがあると、他ソフトと連携し自動実行出来る可能性が在る。しかしソフト例を知らない。 ーー ソフトは原理的に何でもできる。しかし自分がやれ(プログラムを造れない。作るにはウインドウズの仕組みレベルまで知る必要が在る場合も多い)なければ作られたソフトを探すしかない。 しかしソフトは基本的に大衆性=販売して儲かるか、を念頭に製作・販売・公開される。この点から特殊なニーズや断片的なニーズは商品化できない。よっぽど自分が勉強するか、全世界に同好の人・記事を見つけるしかない。しかし全てWEBに公開しているとは言えず、語学力も必要で難しい。
- Sinogi
- ベストアンサー率27% (72/260)
>業務効率を上げるために、VBAでエクセル内の情報を他のアプリケーションに自動入力させたいです。 >入力する情報は、複数の項目があり、固定されています。 >できれば、ワンクリックですべての入力フォームに自動入力させたいです。 「他のアプリケーション」によって、VBA初心者でできることからプロに依頼しなければできないものまで、多様な対応方法がありえます。 まず「他のアプリケーション」をどのようにコントロールできるか確認してください。 「他のアプリケーション」の1画面で貼り付け操作をすることで「全ての項目のデータ」が貼り付けられるなら、エクセルでシートを調整して必要範囲をコピーの後「他のアプリケーション」をアクティブにして貼り付ければ実現できるかもれません。 あるいは「一項目ごと」にエクセルと「他のアプリケーション」を往復する必要があるかもしれません。 もしかしたら、「他のアプリケーション」の動作を受けてからでないと次の作業ができないかもしれません。 「他のアプリケーション」にマクロ機能があれば、エクセルから「他のアプリケーション」のマクロを書き出すことができるかもしれません。 私は企業で事務作業しているだけの者なのでこの程度しか例示できませんが、「他のアプリケーション」だけでは他者には伝わらないことを理解してください。