質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

2451閲覧

複数のExcel VBAプログラムをとりまとめ一つのプログラムにしたい

YusukeMiyake

総合スコア17

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2018/11/21 04:39

編集2018/11/21 05:09

---### 前提・実現したいこと
目的は、約3000個のexcelファイルそれぞれに対し,複数のVBAプログラムを実行することです.これまで,VBAプログラムの完成に努めてきました.今後はそれら複数のVBAプログラムを一つのプログラムとしてまとめたいと考えています.
図中のAの部分が作りたいプログラムです.
複数のVBAプログラムを一つのプログラムにまとめる方法としておすすめは何でしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2018/11/21 04:53

情報が少なすぎて、まとめることが可能なものかどうかこちらでは判断できませんが、あなたもできないならお手上げでは?
YusukeMiyake

2018/11/21 05:11

不備が多々あり申し訳ありません.情報追加しました.
Zuishin

2018/11/21 05:26

追加された画像に新しい情報が何もありません。一つのファイルにまとめるということですか? それとも一つの関数を呼び出せば全て実行できるようにということですか? Hello World 程度の規模のプログラムを三つ用意し、それらをどのように使いたいのか、つまりまとめるとはどういうことなのかがわかるように説明してください。
ttyp03

2018/11/21 05:28

C#タグの意味はなんでしょうか。
YusukeMiyake

2018/11/21 05:35

迅速な対応ありがとうございます.ここでの,"まとめる"というのは一つのプログラムにまとめるというイメージでした.実際に考えたものはC#でそれぞれのVBAプログラムをクラスのメソッドとして定義し,メインプログラムでそれらのメソッドを順序通りに実行しそれを約3000個のexcelファイルに対し実行できるようにするものでした.
YusukeMiyake

2018/11/21 05:37

複数のVBAプログラムを一つのプログラムファイルとしてまとめる方法としてより良い方法が知りたかったため質問させていただきました.
Zuishin

2018/11/21 05:38

つまり、C# から VBA のメソッドを呼び出せるかという質問でしょうか? それとも VBA を C# に移植できるかということでしょうか?
YusukeMiyake

2018/11/21 05:39

C#からVBAのメソッドを呼び出せるかです.
guest

回答2

0

ベストアンサー

[C#][VB.NET] Excel VBA(マクロ) を実行する方法

こんな感じに Excel.Application の Run メソッドを使うようです。

投稿2018/11/21 05:43

Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YusukeMiyake

2018/11/21 05:53

質問があいまいでお手数おかけしてしまい申し訳ありませんでした.試してみます.ありがとうございます.
guest

0

「複数のVBAプログラム」というのが、どのようなものか判りませんが、ワークシートかワークブックを引数に指定して実行すれば良いというようなものばかりであれば、順に呼び出すプログラムを書くだけです。
ワークシートを引数にするプログラムばかりなら、以下のような感じ

public Sub doAll(workbooName as String) Dim wb as WorkBook, ws as Worksheet set wb = workbooks(workbookName) 'プログラムを適用するワークブック for each ws in wb.Worksheets ' 全てのワークシートを順に引数にして、実行すべきプログラムを全て呼び出す call prog1(ws) call prog2(ws) call prog3(ws) call prog4(ws) call prog4(ws) .... '略 next end Sub

投稿2018/11/21 05:37

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YusukeMiyake

2018/11/21 05:51 編集

丁寧な回答ありがとうございます.試してみます.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問