3

現在開かれていないExcel「Closed.Xls」があります。

この閉じたExcelファイルに新しいシートを追加する方法を教えてください。現在のExcelで新しいシートを追加する方法を知っています。

Dim WS as Worksheet
Set WS = Sheets.Add

方法を教えてください

  1. VBAを使用して閉じたExcelに新しいシートを追加し、
  2. 追加されたシートの名前を取得します

注:シートの名前を変更したくありません。

ありがとう

4

3 に答える 3

10

このようなものはあなたが望むことをするでしょう。ブックを開かずに実行することはできませんが、画面の更新をオフにすると、開かれていないように見えます。

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
于 2012-07-13T11:20:26.477 に答える
6

シート名を取得するには、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
于 2012-07-13T11:36:10.147 に答える
4

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」が追加されます。必要に応じて削除/変更する方法を見つけることができるでしょう。

于 2012-07-13T15:16:45.293 に答える