Announcement

Collapse
No announcement yet.

Fenstergröße in VB Studio 2005 und Excel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fenstergröße in VB Studio 2005 und Excel

    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

  • #2
    Noch eine Ergänzung dazu:

    Wenn ich ein Makro der Exceldatei starte, dass die Fenstergröße der Exceldatei auf die Maximalwerte des Bildschirm setzt, füllt das Fenster auch den Bildschirm aus.
    Laß ich mir aber dann die Werte anzeigen, so sind diese wieder um den Faktor 1 / 1,6574585 kleiner!!


    Wenn ich mir die Werte nur in Excel ohne Beteiligung von VB Studio 2005 ansehe, bekomme ich dasselbe Ergebnis.
    Es ist also wohl ein Problem von Excel!!

    vG

    fredyx
    Zuletzt editiert von fredyx; 21.12.2008, 18:30.

    Comment

    Working...
    X