2016-12-19 7 views
3

この機能を検索する際に正しい検索条件を使用しているかどうかはわかりませんが、好奇心が強いのですが、Excelでマクロを動的に生成できますか-vba?もしそうなら、可能な方法は何ですか?VBAコードからマクロを動的に作成する(具体的にはUDF)

excel-vbaでメタプログラミングがサポートされていますか?

+1

はい例えばhttp://www.cpearson.com/Excel/vbe.aspx – SJR

+0

またはここhttp://stackoverflow.com/questions/13956104/add-user-defined-function-to-visual- studio-excel-add-in – Sorceri

+0

@Sorceri VBA/C#に関する私の無知をあなたの返事にお寄せいただき、提供されたC#コードの内容はどうですか?そのコードはVBAプロジェクト内から実行できますか? – jab

答えて

2

ここでは、VBAに変換した例を示します。 Microsoft Visual Basic for Applications Extensibilityへの参照を含める必要があり、トラストセンターの設定でVBAプロジェクトモジュールへのアクセスを有効にする必要があります。

Sub CreateMacro() 
Dim vbComp As VBComponent 
Dim functionText As String 

Set vbComp = ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule) 

functionText = "Function MyTest()" & vbCrLf 
functionText = functionText + "MsgBox " & Chr(34) & "Hello World" & Chr(34) & vbCrLf 
functionText = functionText + "End Function" 

vbComp.CodeModule.AddFromString functionText 

End Sub 
関連する問題