Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Word-Methoden in XL

Betrifft: Word-Methoden in XL von: J.- M. Schulz
Geschrieben am: 20.08.2008 17:31:25

Hallo,
kann man irgendwie eine Methode in XL (VBA) ausführen, die es nur in Word gibt? Konkret geht es um Application.GetAddress(...).

Vielen Dank im Voraus!

J.- M.

  

Betrifft: AW: Word-Methoden in XL von: Anton
Geschrieben am: 20.08.2008 17:47:20

Hallo J.- M.,

so vllt?

Sub b()
  Set objWD = CreateObject("Word.Application")  
  MsgBox objWD.GetAddress(Name:="bla")
  Set objWD = Nothing  
End Sub  


mfg Anton


  

Betrifft: AW: Word-Methoden in XL von: J.- M. Schulz
Geschrieben am: 20.08.2008 18:02:43

Hallo Anton,
na ja so ähnlich. Ich brauche den Nachnamen des Users und habe so versucht:

Function Nachname() As String
  Dim Name0 As String, strUsername As String * 30, strAddress As String
  Nachname = Application.Username
  GetUsername strUsername, 30
  Name0 = Left(strUsername, InStr(strUsername, vbNullChar) - 1)
  Set WordAppl = CreateObject("Word.Application")
  strAddress = WordAppl.GetAddress(Name:=Name0, DisplaySelectDialog:=0, SelectDialog:=0)
  Set WordAppl = Nothing
  Nachname = strAddress
  If InStr(strAddress, ",") Then
    Nachname = Left(strAddress, InStr(strAddress, ",") - 1)
  End If
End Function



Es gibt aber immer die Fehlermeldung "Typen unverträglich" , sobald strAddress belegt werden soll. Was tun?

J.- M.

p.s.: Weiter oben steht noch:

Private Declare

Function GetUsername Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal strUsername As String, ByRef lSize As Long) As Boolean
Das geht auch soweit. Nur weiter hinten klemmt es eben.



  

Betrifft: AW: Word-Methoden in XL von: Anton
Geschrieben am: 20.08.2008 18:34:36

Hallo J.- M.,

versuch mal strAddress als Variant zu deklarieren.Was passiert dann?

mfg Anton


  

Betrifft: AW: Word-Methoden in XL von: J.- M. Schulz
Geschrieben am: 21.08.2008 15:27:06

Hallo Anton,
dadurch ändert sich nichts. Habe aber inzwischen die Lösung gefunden:
Man darf vor den Parametern, die man verwenden will, die anderen nicht weglassen. Mit
...
Set WordAppl = CreateObject("Word.Application")
strAddress = WordAppl.GetAddress(Name:=Name0, _ AddressProperties:="<PR_SURNAME>", useAutoText:=False, _ DisplaySelectDialog:=0, SelectDialog:=0)
Set WordAppl = Nothing
Nachname = strAddress
End Function

hat man dann das gewünschte Ergebnis.


  

Betrifft: AW: Word-Methoden in XL von: Ramses
Geschrieben am: 20.08.2008 20:06:46

Hallo

GetUsername strUsername, 30

Die Variable ist zu diesem Zeitpunkt leer bzw. noch ungefüllt.
WAS soll denn da zurückgegeben werden ?

Ich verstehe überhaupt nicht, WAS du eigentlich genau machen willst ?

Gruss Rainer


  

Betrifft: AW: Word-Methoden in XL von: J.- M. Schulz
Geschrieben am: 21.08.2008 14:39:47

Hallo Rainer,

diese Funktion - deren Coding ich ja unten noch mal drangeschrieben hatte - liest aus der Registry die Kennung aus, unter der der User im Windows angemeldet ist. Die kann zwar den tatsächlichen Namen oder Teile davon beinhalten, muß aber nicht. (Da Personen ja manchmal bei Heirat oder Scheidung ihre Namen ändern, ist es für Administratoren einfacher, Kennungen der Art "User12345" zu vergeben, die dann bei Namensänderungen nicht angepaßt werden müssen.) Deswegen wird ja der tatsächliche Name in der Funktion auch über das Adreßbuch beschafft.

Gruß

J.- M.