• ベストアンサー

ExcelVBAを利用した簡単なアプリケーションを作りたい

現在、事務関係の仕事をしていて、ある仕組みを作りたいと考えております。 ACCESSのようにコントロールボタン作り、押したら処理が分岐する、というようなものをとりあえず作りたいのですが、Excelのみで作成するのは無理でしょうか? 全体的に作りたいものは、ボタンを押したら、エクセルのデータファイルが開くようにして、そこからそのデータを使用し、自動的にDMを作成する、といったものです。もし、Excel以外のソフトでお勧めのものがあれば、こちらも教えていただけると助かります。私としては、データファイルがExcelなので、Excelもしくは、Accessを使うのが良いのではないかと考えています。 ご教授をお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

>ACCESSのようにコントロールボタン作り、押したら処理が分岐する、というようなものをとりあえず 分岐でなく、実行・処理のことを言っていると思います。 分岐は条件分岐などで使います。 >ボタンを押したら ボタンをフォームに貼り付けるか、シート上で我慢するか >エクセルのデータファイルが開くようにして 現在開いているブック以外を開かないとダメなのか? >自動的にDMを作成する ワードの差込印刷などを考えているらしいが、オフィスソフトを2,3またがると、それなりにVBAが難しくなるのでは。 >Excel以外のソフトでお勧めのものがあれば 元データをCSVファイルでもらうのでしょうから、もしそういうソフトがあればそれを使うべきでしょう。住所録的なCSVファイルの取り込みは必ず市販ソフトには備えてあるはず。 >ExcelVBAで十分実現可能ですよ というご意見もありますが、VBAに習熟した経験者にはそうでも、未経験だったら、好きだったり、プログラムに向いていたり、凝り性であったりした上で、相当勉強すればということだと思います。 失礼ながら、質問の書き方等から推測して、相当時間がかかるように思います。 というのは、このクラスのことができれば、事務でVBA化するのは何でも来いになるでしょう。初歩的な問題でも何でもなくて、それぐらいいろいろな問題にでくわし、汎用的な問題だと思うからです。 諸オフィスソフトを渡り歩かないで、アクセスだけにするのが、勉強が省けるのではないですか。アクセスにインポートするなどは、1行のプログラム(またはワンステックの操作)で終わりますから、アクセスに経験があるなら、エクセルに拘らなくてよいと思います。 意外に、(印刷済みか?)DMチラシの所定欄に住所氏名などを、紙厚さとか考えて、プリンタで打てるか、きっちっと打ち出セルか、アクセスの(VBA?)スキルなどが難しいのではないでしょう。

fiveend
質問者

お礼

ありがとうございました。 Accessでの作成に切り替えました。

その他の回答 (2)

  • tessyu
  • ベストアンサー率53% (59/110)
回答No.2

ExcelVBAで十分実現可能ですよ。 ボタンを押したらAccessのデータを取り込んで、Excelで計算し、結果をアウトルックでメール送信 …という事も自動化出来ます。

fiveend
質問者

お礼

ありがとうございます。 使用するデータが他のソフトを使用して、 Excel形式で出てくるので、 なるべくExcelで使おうかなと思いまして・・・。 使用者はPCに関する知識がまったく無いので、 わかりやすくつくろうと考えています。 充分実現可能というのを聞いて安心しました。 頑張ってみます。 ありがとうございます。

  • OsieteG00
  • ベストアンサー率35% (777/2173)
回答No.1

ExcelVBAでもできますよ。ユーザーフォームやワークシートにコマンドボタンを貼り付け、そのボタンにマクロを登録しておけばよいです。 ただ、DMなどの帳票出力はできないことは無いですがAccessを使ったほうが体裁が整えやすく、簡単かもしれません。

参考URL:
http://www6.plala.or.jp/hiroshi_n/excelvba.htm,http://excelfactory.net/inukouza/inu09.htm
fiveend
質問者

お礼

ありがとうございます。 ユーザーフォームの使い方はもう少し勉強が必要みたいです・・・。 DMはワードを通して出そうかなと考えています。 ただ、使用する人間がPCに関する知識がほとんど無いので、できればボタンをクリックするだけで、 ポンポンとできる様にしたいのです。 ファイルをクリックして開いた時に、ユーザーフォームだけが表示される、というようなことは可能なのでしょうか?Accessのような体裁にしようと考えています。 参考ページも頂き、ありがとうございました。

関連するQ&A

  • AccessからExcel立ち上げ

    Access2003で作成したテーブルをExcelに出力し、そのファイルをAccessから開き、罫線や列幅等フォーマットを自動的に整え、表示します。表示中にデータ確認し、印刷等の処理を行い、閉じて、またAccessの操作に戻りたいと思います。 この際、アクセスで設定したエクセルのオブジェクト変数をCloseしてしまうと、エクセル画面が閉じられてしまう為、AccessモジュールでのClose処理を行わないままとなっています。この為か、引き続いて条件を変えてエクセルに出力して、同様の処理を行うと、AccessモジュールからのExcelの自動フォーマット化が行われなくなってしまいます。Accessを再起動すれば、正常に処理できるので、オブジェクト変数のClose未処理が原因と考えています。 このような場合、一般にはどのように処理されているのでしょうか?Excel画面表示後、DoループDoEvents関数で待ち状態とし、ボタン操作でExcel操作の終了を知らせて、オブジェクト変数のClose処理を行えばいいのかと思いますが、一般にはどのように処理されているものなのかご教示下さい。

  • ExcelVBAでのwinsockの利用

    だいぶ以前に、VB6を使ってマニュアル片手にtcpやudpによるLAN内での双方向データ転送(チャットごっこ)ができるものを作った経験があります。 最近、Excel2010のVBAを使って当時のようなものを作ってみたいと考え、CQ出版の「VBAによるTCP/IPプログラミング入門」を購入しました。読んだ限りではなんとかなりそうに思ったのですが、その中で、「Winsockコントロールはプログラム開発し配布するためにはそのライセンスが必要でライセンスなしではWinsockコントロールを配置してダイアログを作成できない」という記述がありました。つまりはVB6などのライセンスがある環境でないと作り始めることができないようです。 幸いVB6はうちの古いパソコンに入っていますから、そちらに入っているExcelでWinsockコントロールを配置しただけのVBAファイルを作り、今のExcel2010に持って来て修正していくのであれば作業は可能らしいのですが、いずれは破棄するであろうパソコンに依存しないといけないという流れがしっくり来ません。 また、VB6を今の環境に移せば解決する話だとも思いますが、今後VBAは使ってもVB6を使うことはないだろうということと、容量等の事情から、できればこちらに入れるようなことはしたくありません。 必要に迫られてもいなく少々わがままな事情も合わせての話ですが、何か解決方法がありましたら提案・指摘などをお願いいたします。

  • ExcelVBA…Excelを閉じたいのです。

    ExcelVBA…Excelを閉じたいのです。 CSVファイルをExcelに取り込み、並び替えて再びCSVファイルに書き出す処理を書いています。 その処理が終わった後に、Excel自体を保存せずに閉じたいと思い、 Application.Quit Application.DisplayAlerts = False と記述しました。 すると、Excelが閉じられたあと、5秒くらい固まってしまいます。 何か負荷がかかっているのかと思いますが、記述に問題があるのでしょうか?

  • Excel2007のファイル保存

    Excel2007でExcelのオプションでファイルを自動保存する場所と既定のファイルの場所をマイドキュメントにDATA-Excelというフォルダーを作成し、そこに指定してあります。ファイルを開くときは必ずそこにアクセスしますが、名前を付けて保存するときは全く別のところにアクセスしてしまいます。保存場所を固定するにはどうしたらいいのでしょうか。よろしくお願いします。

  • Excel の結果を Access へ移行したい

    Access および Excel 共に2003を使っています。 Access側からExcelを呼び出して、Excel にAccess のデータ(数字)を書き込みます。 Excel側で計算処理をして、「戻る」のボタン(別途作成)を押せば その計算結果を元のAccess のテキストボックスに書き込みたいと思います。 Access側からExcelへは問題なくデータ表示ができ、計算処理もできるのですが、 Access側に計算結果の移行ができません。 どうしたらよいか教えていただけませんか。 ちなみにAccess から Excel の移動は次のようにやっています。 strfile = CurrentProject.Path & "\○○.xls" Set Appexcel = New Excel.Application Set wb = Appexcel.Workbooks.Open(strfile) Appexcel.Visible = True

  • AccessデータをExcelデータに変換して送信

    Access2000とOutlookExpressを使用しています。 実現したいことは、 コマンドボタンをクリックするとある特定のデータがExcelに 変換されて、そのExcelファイルが自動で添付ファイルとして 特定のアドレスに送信されるようにして、 さらに、送信したExcelファイルを自動で消去したいのですが。 いかがなものでしょうか? 今現在はExcelファイルを自動で変換するところまでは できましたが、その後がどうすれば良いのか分かりません。 以上、良いアドバイスをお願い致します。

  • ExcelVBAに詳しい方に質問!

    ExcelVBAに詳しい方に質問! 私は仕事でアンケート集計をしている者です。顧客から調査を依頼される のですが、いただくデータはExcel形式のファイルです。なので、 そこからモニターの方向けにWeb化する必要があります。 今回目指しているのは、例えばExcelデータの中でマクロが入った ボタンをたった一回押すだけでHTML形式のWebページに変換 するツールを作りたいと思います。 Excel外のマクロでも良いのですが、ExcelVBAでマクロを組んでWeb 化するには具体的にどのようにVBAを組んだらできますか? また、ExcelVBAでなくExcelファイルをWeb化する違う 方法はありますか? ExcelVBAに詳しい方、是非ご教授の程、よろしくお願いいたします。

  • ExcelVBA

    すいません。簡単なことなのかもしれませんが、困っています。 普段C++を使用して仕事をしているのですが、急遽ExcelVBAを使用してExcelのマクロを作成しなければならなくなりました。 VisualBasicはまったく触ったことないので質問させていただきます。 Excelファイルの保護されていないセルの行数と列数を数えたいのです。 ExcelVBAで記述するとどういったコードになるのでしょうか? ちなみにExcel2007を使用しています。 皆さんの知恵をお貸しください。

  • ExcelVBAで透明画面を追従させたい

    ExcelでUSBカメラのライブ画像を表示して、ボタンが押されたときに画像を取り込み画像処理して結果を表示するマクロを作成しています。 ライブ画像の上に透明画面をかぶせて十字線を表示しているのですが、Excelの画面を移動するとライブ画像は一緒に移動しますが、透明画面は移動せずExcel画面の外にはみ出してしまいます。 透明画面もExcel画面と一緒に移動させるにはどうすればよいでしょうか。 現在は次のようにマクロを作成しています。 1. 「ActiveMovie control type library」を参照設定してUSBカメラのライブ画像を表示・取り込み。 2. CreateWindowExにより透明画面作製。背景はNULL_BRUSH。スタイルはWS_POPUP。親ウィンドウはExcel。 3. 十字線はWM_PAINTで描画。 なお、透明画面のスタイルをWS_CHILDにすればExcel画面と一緒に移動しますが、ライブ画像(ActiveMovie)の下になってしまうため十字線が見えなくなります。

  • アクセスからエクスポートするファイル名に日付を入れたい

    アクセス2003を使用しています。 エクセルからデータをインポートして、データ加工後、エクセルにエクスポートさせるように作成中です。 マクロで エクスポートするファイル名に日付を自動で設定せたいのですが、方法が判りません。 例)処理後20070824.xls  どうか教えてください。よろしくお願いいたします。

専門家に質問してみよう