HERBERS Excel-Forum - die Beispiele

Thema: ComDlg-Dialog aufrufen

Home

Gruppe

API

Problem

Statt des Standard-Öffnendialogs soll der ComDlg-Dialog aufgerufen werden.

Lösung
Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.
StandardModule: Modul1

Private Declare Function GetOpenFileName Lib "comdlg32.dll" _
   Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

Private Type OPENFILENAME
   lStructSize As Long
   hwndOwner As Long
   hInstance As Long
   lpstrFilter As String
   lpstrCustomFilter As String
   nMaxCustFilter As Long
   nFilterIndex As Long
   lpstrFile As String
   nMaxFile As Long
   lpstrFileTitle As String
   nMaxFileTitle As Long
   lpstrInitialDir As String
   lpstrTitle As String
   flags As Long
   nFileOffset As Integer
   nFileExtension As Integer
   lpstrDefExt As String
   lCustData As Long
   lpfnHook As Long
   lpTemplateName As String
End Type

Sub CallOpenDialog()
   Dim OpenFile As OPENFILENAME
   Dim lReturn As Long
   Dim sFilter As String
   OpenFile.lStructSize = Len(OpenFile)
   sFilter = "All Files (*.*)" & Chr(0) & "*.*" & Chr(0)
   With OpenFile
      .lpstrFilter = sFilter
      .nFilterIndex = 1
      .lpstrFile = String(257, 0)
      .nMaxFile = Len(OpenFile.lpstrFile) - 1
      .lpstrFileTitle = OpenFile.lpstrFile
      .nMaxFileTitle = OpenFile.nMaxFile
      .lpstrInitialDir = Application.DefaultFilePath
      .lpstrTitle = "ComDlg API statt OCX nutzen"
      .flags = 0
   End With
   lReturn = GetOpenFileName(OpenFile)
   If lReturn = 0 Then
      MsgBox "Suche abgebrochen!", vbInformation
   Else
      MsgBox Trim(Left(OpenFile.lpstrFile, _
         InStr(1, OpenFile.lpstrFile, Chr(0)) - 1))
   End If
End Sub

Sub CopyText()
   Dim ClipAbLage As DataObject
   Dim iRow As Integer
   Dim sTxt As String
   Set ClipAbLage = New DataObject
   iRow = ActiveCell.Row
   Do Until IsEmpty(Cells(iRow, ActiveCell.Column))
      sTxt = sTxt & " " & Cells(iRow, ActiveCell.Column).Value
      iRow = iRow + 1
   Loop
   sTxt = Right(sTxt, Len(sTxt) - 1)
   ClipAbLage.SetText sTxt
   ClipAbLage.PutInClipboard
End Sub

Beiträge aus dem Excel-Forum zu den Themen API und Dialog

Excel to Word Kapitel VBA Anfangskapital berechnen
Gestapelte Säulen-Diagramm: Ich kapier's nicht Googel Maps API in Excel VBA einfügen
xlDialogInsertHyperlink.show Arbeitmappen über Dialogfeld zusammen fassen
5.0 Dialog Speichern unter Dialog in Word aufrufen inkl. Pfad
Druckerdialog Dateityp im "Speichern unter"-Dialog vorgeben
Makro stoppen, wenn Excel-Dialog? xlDialogOpen anpassen
Klick in definierten Rangebereich startet Dialog Berechnung vom Endkapital
xlDialogOpen bei Excel 2007 funzt nicht FileDialog inkl. Anklicken von Desktop, Eigene D.
Grösse Dialogfenster der InputBox API? - xl-Parameter aus Long-Wert bestimmen
Berechnung Kapitalanlage Telefonnummer auslesen per TAPI
Dialogfeld unterdrücken Dialog "permanently delete sheets" unterbinden
Format-Dialog funktioniert nicht mehr Dialog "Verknüpfung aktualisieren"
Ordnerdialog und Dateidialog Ordnerdialog und dateidialog
Läuft RSAPI.DLL mit WIN2000 und XP? Ordnerdialog und Dateidialog
Filedialog Herber/Beispiele/Dialoge/Checkbox/137601
JAVA API mit VBA verwenden Bilder bei Click im Dialogfeld
Suchdialog über VBA aufrufen mit Wert aus Combobox Dialog öffnen
Diagramm als Grafik mit Speicherdialog exportieren Dialogfenster zum kopieren
FileDialog-Objekt unter O2k Abrage von Dialogfeldargumenten
Datei Auswählen Dialog (Application.FileDialog) xlDialogOpen/FindFile ohne Open
Dialogfeld zum pdf öffnen Dialogfeld schließen, wenn Benutzer nichts eingibt
Problem mit ApplicationDialogs Das Dialogfeld "sortieren" aufrufen?
Keine Dialogbox bei SaveAs Dialogbox
Bei xlDialogSaveAs Dateinamen vorgeben Blattauswahldialog...
speichern unter dialogbox problem Speicherndialog bei BeforeClose unterbinden