現在開かれていないExcel「Closed.Xls」があります。
この閉じたExcelファイルに新しいシートを追加する方法を教えてください。現在のExcelで新しいシートを追加する方法を知っています。
Dim WS as Worksheet
Set WS = Sheets.Add
方法を教えてください
- VBAを使用して閉じたExcelに新しいシートを追加し、
- 追加されたシートの名前を取得します
注:シートの名前を変更したくありません。
ありがとう
このようなものはあなたが望むことをするでしょう。ブックを開かずに実行することはできませんが、画面の更新をオフにすると、開かれていないように見えます。
Option Explicit
Sub Add_Sheet_ClosedBook()
Dim bk As Workbook
Dim sh As Worksheet
Dim shName As String
With Application
.ScreenUpdating = False
.DisplayAlerts = False
Set bk = .Workbooks.Open _
("Path to Book.xls")
End With
With bk
Set sh = .Sheets.Add
shName = sh.Name
.Save
.Close
End With
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
シート名を取得するには、worksheet
変数を使用します。
Sub Added()
Dim Wb As Workbook
Dim ws As Worksheet
With Application
.ScreenUpdating = False
.DisplayAlerts = False
.EnableEvents = False
End With
Set Wb = Workbooks.Open("c:\Temp\closed.xls")
Set ws = Wb.Sheets.Add
Debug.Print ws.Name
Wb.Save
Wb.Close
With Application
.ScreenUpdating = True
.DisplayAlerts = True
.EnableEvents = True
End With
End Sub
Microsoft.ACE.OLEDB.12.0プロバイダーを使用すると、ブックを開かなくてもシートを追加できます。
set cn = new adodb.connection
with cn
.provider = "Microsoft.ACE.OLEDB.12.0"
.connectionstring = "Data Source=" & strSomeFilename & ";Extended Properties=""Excel12.0;"""
.open
end with
set cmd = new adodb.command
cmd.activeconnection = cn
cmd.commandtext = "CREATE TABLE MySheet (ID char(255))"
cmd.execute
これにより、新しいシートのセルA1に見出し「ID」が追加されます。必要に応じて削除/変更する方法を見つけることができるでしょう。