「テーブルの作成」SQL スクリプトを生成するためのツールとして、マクロ対応の Excel を作成しています。列名、データ型などを入力する必要がある場所にシートが作成され、ボタンをクリックするとスクリプトが生成されます。このシートは「スクリプト ジェネレーター」と呼ばれます。ここで、テーブル名とボタンを持つ「インデックス」シートが必要です。ボタンをクリックすると、各テーブル名の「スクリプト ジェネレーター」シートを開く必要があり、これらのシートの名前をテーブル名に変更する必要があります。
インデックス シートのコードは次のようになります。
Sub Add_sheets()
On Error Resume Next
Dim count As Integer
Dim r As Range
Dim sh As Worksheet
For Each r In Range("A3:A103")
If Not r = "" Then
count = 0
For Each sh In ActiveWorkbook.Sheets
If sh.Name = r.Value Then
count = count + 1
End If
Next sh
If count = 0 Then
With ActiveWorkbook.Sheets
.Add(after:=Worksheets(Worksheets.count), Type:="C:\Macro\Script_Template.xltm").Name = r.Value
End With
ActiveSheet.Hyperlinks.Add Anchor:=r, Address:="", _
SubAddress:=Sheets(r.Value).Name & "!A1"
End If
End If
Next r
End Sub
さて、問題は、'Script_Template.xltm' として保存されたスクリプト ジェネレーターを外部に追加していることです。これをすべて実行できるExcelが1つだけ必要です。つまり、インデックス ファイルは、「スクリプト ジェネレーター」形式の新しいシートを内部的に開いたり追加したりして、1 つの完全なツールを形成する必要があります。おそらく、このシートを非表示にし、マクロを介してそのインスタンスを呼び出し、それらのシートの名前を変更することによって。VBAを介してそれを行う方法は?誰かがこれで私を助けてくれますか?