PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GUI bei Visual Basic nutzen


Gast
2010-12-22, 10:05:26
Hallo miteinander,

Ich würde gerne eine GUI zu meinem Code schreiben, habe jedoch noch nie mehr gemacht als Macros zu schreiben.
Wie implementiere ich jetzt eine GUI wo ich die Zeile und die Version eingeben kann (jeweils eigenes Eingabefeld) und sobald ich "GO" Drücke das ganze korrekt übernommen in eine Excel Tabelle schreibe.

der Code ist foglendermassen:

---- following: code ----


Sub insertWordCommentsInExcel()
'
' insertWordCommentsInExcel
' Macro created 09.09.2010 by --
' Last update: 22.12.2010 by --
'
' Current functionality: Take comments, author, page number and predefined version-string
' and write it into currently open Excel-file, beginning with prespecified line number
'

Dim wrdDoc As Word.Document
Dim i, beginCellNbr As Integer
Dim curCmt As Word.Comment
Dim excelApp As Excel.Application

Set excelApp = GetObject(, "Excel.Application")
excelApp.Visible = False
'excelApp.Workbooks.Add

'the following variables need to be defined by the user
beginCellNbr = 7
curDocVersionString = "V1.0"

Set wrdDoc = Word.ActiveDocument
'Word.Documents.Open ("P:\blubb.doc")

For i = beginCellNbr To (wrdDoc.Comments.Count + beginCellNbr - 1)
'iterate through each comment (basically a for-each loop)
Set curCmt = wrdDoc.Comments(i - beginCellNbr + 1)
'to retrieve text of the comment

With excelApp.ActiveWorkbook.Worksheets(3)
.Cells(i, 1).Value = curDocVersionString
.Cells(i, 2).Value = curCmt.Scope.Information(wdActiveEndPageNumber)
With .Cells(i, 3)
.Value = curCmt.Range.Text
.WrapText = True
End With
.Cells(i, 4).Value = curCmt.Author
End With
Next i

excelApp.Visible = True
End Sub



---- end of: code ----

danke für eure Hilfe

RattuS
2010-12-22, 12:21:52
VBA liefert einen Designer für Forms (Neu -> Formular oder so ähnlich). Dann einfach per Drag & Drop die zwei TextBoxen und den Button draufschieben und ihnen einen Namen geben (siehe Eigenschaften/Attribute des Komponenten). Danach kannst du diese Komponenten in deinem Code ansprechen. Um z.B. den Text aus einer TextBox zu holen, einfach auf das .Text-Feld zugreifen. Mit einem Doppelklick auf den Button im Designer erzeugst du einen OnClick-Event, der ausgeführt wird, wenn man eben draufklickt. Total simpel und selbsterklärend. ^^

Gast
2010-12-22, 13:57:16
Schaffe ich nicht.


Ich versuche die Textbox mit einer Value zu versehen und dann zu definieren bspw. so:


textbox1.value = begincellnbr

damit will ich definieren, dass der Wert in der Textbox die Zellennummer darstellt - Problem ist, dass ich anscheinend keinen Bezug auf das Excel dokument nehme, wie schreibe ich das?


ich habe ja ein Word und ein Excel DOkumet offen, wobei ich vom Word Kommentare und Seitenzal und autor rüberkopiere. Ich möchte jetzt mit der grafischen Oberfläche, damit nicht immer in den Code gehen müssen um für die Zellzahl oder die Version einen anderen Wert einzugeben, nutzen.

den "Copy" Button habe ich mit

module1.insertWordCommentsInExcel()

definiert, das scheint wohl auch zu gehen. nur nicht so ganz wie ich das will?

achja das ganze ist als Makro in Word gemacht - also kein externes VB Tool.

TheGamer
2010-12-22, 15:32:30
begincellnbr = textbox1.Text
curDocVersionString = textbox2.Text

nachdem du auf GO geklickt hast.

Du willst ja was von der Textbox. Nicht die Textbox von dir

Ggf musst du halt noch den Text in eine Zahl umwandeln