• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBAを外部プログラムから組み込む方法)

Excel VBAを外部プログラムから組み込む方法

このQ&Aのポイント
  • Microsoft SQL ServerのReport Service機能を使って、データの一覧をExcelに出力するようなツールを作成しました。
  • 出力されたExcelにデータを追記し、SQL Serverのテーブルにデータを書き戻すために、外部のプログラムからExcelにマクロを組み込む方法を知りたいです。
  • 書き戻しボタンを持つフォーマットファイルを用意する方法も考えられますが、今回はReport Serviceを使って自動でExcelに出力する方法ではなく、外部からVBAを組み込む方法を探しています。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

(1)VBAのプログラムをExportしておく。→ "hoge.bas" (2)該当ブックで、下記メソッドを実行する。  例:WorkBooks(1).VBProject.VBComponents.Import "hoge.bas" これで、外部にあるBasicプログラムを取り込めます。 ところで、「外部のプログラム」って何ですか?COMオブジェクトが 扱える言語ですよね?

toshiya8
質問者

お礼

回答ありがとうございます。 外部プログラムはJScript?だと思います。.jsの拡張子です。 クライアントサイドで動くやつです。 Excel VBAみたいな感じでExcelのデータを扱えるので、大丈夫だと思います。 あと、そのExportしたプログラムを動かすためのボタンも同様に取り込み可能ですか?

toshiya8
質問者

補足

VBProjectがエラーで落ちたため、調べたところ、セキュリティの設定で「VBAプロジェクトオブジェクトモデルへのアクセスを信頼する」にチェックを入れる必要がありました。 この処理自体もプログラムでやっちゃうことってできるのでしょうか?

その他の回答 (1)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

>ボタンも同様に取り込み可能ですか ボタンは作るんです。 WorkSheet(1).Buttons.Add 横位置, 縦位置, 幅, 高さ WorkSheet(1).Buttons(1).Caption = "巻き戻し" WorkSheet(1).Buttons(1).OnAction = "メソッド" それと、Windowsであるなら、VBScriptで操作しないとExcelの インスタンスが消滅しませんので、VBScriptで実施するか、 JavaScriptにこだわるなら、ScriptControlオブジェクト上で、 VBSのステートメントを実行するような方法で操作します。

toshiya8
質問者

お礼

作れるんですね!! やってみます。 ありがとうございます。

関連するQ&A