この記事では、Excelブックに新しいモジュールを挿入するためのマクロを作成します。

マクロを実行する前に、モジュールのタイプと名前を指定する必要があります。

ArrowMain

ArrowRaw

スクリーンショットでわかるように、ワークブックにはモジュールが1つしかありません。この例では、クラスモジュールをブックに追加します。

ArrowOutput

ロジックの説明

この記事では、「CreateNewModule」と「CallingProcedure」の2つのマクロを作成しました。

「createNewModule」マクロは、提供された入力に応じて、新しいモジュールを追加するために使用されます。

「CallingProcedure」マクロは、入力を提供し、メインモジュールを呼び出すために使用されます。

コードの説明

ModuleComponent = Wbook.VBProject.VBComponents.Add(ModuleTypeIndex)を設定します

上記のコードは、VBAプロジェクトに新しいモジュールを追加するために使用されます。

ModuleComponent.Name = NewModuleName上記のコードは、挿入されたコンポーネントの名前を変更するために使用されます。

ModuleTypeConst = Cint(Range( “D12″)。Value)

上記のコードは、セルD12から整数値を取得するために使用されます。

ModuleName = Sheet1.TextBox2.Value上記のコードは、テキストボックスから値を取得するために使用されます。

コードについては以下に従ってください

Option Explicit

Sub CreateNewModule(ByVal ModuleTypeIndex As Integer, ByVal NewModuleName As String)

'Declaring variables

Dim ModuleComponent As VBComponent

Dim WBook As Workbook

'Creating object of active workbook

Set WBook = ActiveWorkbook

Set ModuleComponent = Nothing



On Error Resume Next

'Adding new module component

Set ModuleComponent = WBook.VBProject.VBComponents.Add(ModuleTypeIndex)

If Not ModuleComponent Is Nothing Then

'Renaming the new module

ModuleComponent.Name = NewModuleName

End If

On Error GoTo 0

Set ModuleComponent = Nothing

End Sub

Sub CallingProcedure()

'Declare variables

Dim ModuleTypeConst As Integer

Dim ModuleName As String

'Getting value of module name and type of module

ModuleTypeConst = CInt(Range("D12").Value)

ModuleName = Sheet1.TextBox2.Value

'Calling CreateNewModule

CreateNewModule ModuleTypeConst, ModuleName

End Sub

このブログが気に入ったら、FacebookやFacebookで友達と共有してください。

皆様からのご意見をお待ちしております。私たちの仕事を改善し、あなたのために改善する方法をお知らせください。 [email protected]までご連絡ください