Hallo zusammen,
[Highlight=vbnet]
Imports System.Runtime.InteropServices 'für "Public exApp As Application" und "Public exWB As Excel.Workbook" nötig
Imports Microsoft.Office.Interop.Excel 'für "Public exApp As Application" und "Public exWB As Excel.Workbook" nötig
Public Class Form1
Public exApp As Application
Public exWB As Microsoft.Office.Interop.Excel.Workbook
Public xlOberkante, xlLinkerRand, xlBreite, xlHöhe As Short 'das sind die über EINSTELLUNG ermittelten Größen
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Position und Größe der VB-Form abfragen und in den TB's anzeigen
xlLinkerRand = Me.Location.X
TextBox1.Text = xlLinkerRand
xlOberkante = Me.Location.Y
TextBox2.Text = xlOberkante
xlBreite = Me.Width
TextBox3.Text = xlBreite
xlHöhe = Me.Height
TextBox4.Text = xlHöhe
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'Excel öffnen
exApp = New ApplicationClass() 'bei Excel 2007
exWB = exApp.Workbooks.Open(System.Windows.Forms.Applicat ion.StartupPath & "\Mappe1.xls")
exApp.Visible = True
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
' Excel schließen und Verweis freigeben:
exApp.Quit()
Marshal.ReleaseComObject(exApp)
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
'Dem Excel-Fenster die Werte des Form-Fensters zuweisen
exApp.Left = xlLinkerRand / 1.65
exApp.Top = xlOberkante / 1.65
exApp.Width = xlBreite / 1.65
exApp.Height = xlHöhe / 1.65
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
'Die Werte des Excel-Fensters in den TB's anzeigen
TextBox1.Text = exApp.Left
TextBox2.Text = exApp.Top
TextBox3.Text = exApp.Width
TextBox4.Text = exApp.Height
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
'Makro2 Starten, das dem Excel-Fenster eine bestimmte Größe verpasst!!
exApp.Run("Makro2")
End Sub
End Class[/Highlight]
mit diesem Code möchte ich die Fenstergröße einer VB-Studio-Form auf ein Excel-Fenster übertragen.
Das seltsame ist nur, das die beiden Fenster auf dem Bildschirm nur dann etwa dieselbe Position und Größe haben, wenn die Werte der VB-Form durch 1.65 (in Button 5)dividiert werden.
Gibt es dafür eine logische Erklärung, oder muss ich da irgendwo anderen Code verwenden??
vG
fredyx
[Highlight=vbnet]
Imports System.Runtime.InteropServices 'für "Public exApp As Application" und "Public exWB As Excel.Workbook" nötig
Imports Microsoft.Office.Interop.Excel 'für "Public exApp As Application" und "Public exWB As Excel.Workbook" nötig
Public Class Form1
Public exApp As Application
Public exWB As Microsoft.Office.Interop.Excel.Workbook
Public xlOberkante, xlLinkerRand, xlBreite, xlHöhe As Short 'das sind die über EINSTELLUNG ermittelten Größen
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Position und Größe der VB-Form abfragen und in den TB's anzeigen
xlLinkerRand = Me.Location.X
TextBox1.Text = xlLinkerRand
xlOberkante = Me.Location.Y
TextBox2.Text = xlOberkante
xlBreite = Me.Width
TextBox3.Text = xlBreite
xlHöhe = Me.Height
TextBox4.Text = xlHöhe
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'Excel öffnen
exApp = New ApplicationClass() 'bei Excel 2007
exWB = exApp.Workbooks.Open(System.Windows.Forms.Applicat ion.StartupPath & "\Mappe1.xls")
exApp.Visible = True
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
' Excel schließen und Verweis freigeben:
exApp.Quit()
Marshal.ReleaseComObject(exApp)
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
'Dem Excel-Fenster die Werte des Form-Fensters zuweisen
exApp.Left = xlLinkerRand / 1.65
exApp.Top = xlOberkante / 1.65
exApp.Width = xlBreite / 1.65
exApp.Height = xlHöhe / 1.65
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
'Die Werte des Excel-Fensters in den TB's anzeigen
TextBox1.Text = exApp.Left
TextBox2.Text = exApp.Top
TextBox3.Text = exApp.Width
TextBox4.Text = exApp.Height
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
'Makro2 Starten, das dem Excel-Fenster eine bestimmte Größe verpasst!!
exApp.Run("Makro2")
End Sub
End Class[/Highlight]
mit diesem Code möchte ich die Fenstergröße einer VB-Studio-Form auf ein Excel-Fenster übertragen.
Das seltsame ist nur, das die beiden Fenster auf dem Bildschirm nur dann etwa dieselbe Position und Größe haben, wenn die Werte der VB-Form durch 1.65 (in Button 5)dividiert werden.
Gibt es dafür eine logische Erklärung, oder muss ich da irgendwo anderen Code verwenden??
vG
fredyx
Comment