unknown: Überprüfen, ob eine gewisse Excel-Mappe offen ist

Beitrag lesen

Wie jetzt? Sorry das ich das frage, aber kannst du mal n kurzes Bsp. zeigen?

Ich hab auch keine Ahnung von VB, aber wie man dort Objekte anlegt ist eigentlich schnell gegoogelt:

<script type="text/vbscript">
class myExcelObj
  public Application
  public Workbook
end class
Function EXCEL_Tabelle_erstellen()
  Dim OpenExcel, OpenWorkbook
  Set OpenExcel = CreateObject("Excel.Application")
  Set OpenWorkbook = OpenExcel.Workbooks.Open( "C:\test.xls" )

set e = new myExcelObj
  set e.Application = OpenExcel
  set e.Workbook = OpenWorkbook

Set EXCEL_Tabelle_erstellen = e
End Function
</script>

<script type="text/javascript">
VBSCode_EXCEL_Start( EXCEL_Tabelle_erstellen() );
function VBSCode_EXCEL_Start( EXCEL )
{

EXCEL.Workbook.Worksheets.Add();
  EXCEL.Workbook.ActiveSheet.Name = "Test_" + EXCEL.Workbook.Worksheets.Count;

'Internes Makro starten und ausführen'
  EXCEL.Workbook.Parent.Run("'DieseArbeitsmappe.Buttons_erstellen " + 1 + ", "js"'");

EXCEL.Workbook.Save();
  EXCEL.Application.Quit();

};
</script>

Es liegt mit großer Wahrscheinlichkeit doch am Before_Close-Handler, bzw. am Close.
Wenn man Workbook.Close() aufruft läuft irgendwas anders, als wenn man das Document im Excel manuell schließt. Dann sind im Before_Close-Handler nicht mehr alle Aktionen möglich, die im Normalfall möglich sind. Auf jeden Fall in Bezug auf das Worksheet.Buttons Objekt.
Vielleicht ist das der Grund, warum es als hidden gekennzeichnet ist.