Domanda

sto lottando per scoprire come attivare a livello di codice "Seleziona oggetti" tipo di cursore. Ho controllato il browser degli oggetti e mi aspettavo di trovare una proprietà come Application.CursorType o Application.DrawingMode.

Modifica del tipo di cursore non viene raccolto nel registratore di macro e devo essere alla ricerca per i termini sbagliati, come non riesco a trovare le informazioni su questa parte.

Modifica avrei dovuto messo in chiaro non sto parlando della comparsa del cursore che può essere impostata tramite Application.Cursor. Piuttosto, voglio impostare il cursore nella stessa modalità può essere impostata tramite l'interfaccia grafica facendo clic sull'icona "Selezionare gli oggetti" sulla barra degli strumenti Disegno. Questo è il cursore che permette soltanto selezione di forme e ignora le celle, il testo e la barra di formula.

In realtà, non ho mai saputo il nome corretto per questa modalità cursore fino a quando ho controllato il tooltip di scrivere questo aggiornamento, che forse ti aiuto.

È stato utile?

Soluzione

non ho ben seguo perché si vuole fare questo, ma è possibile alternare il "Selezionare gli oggetti" modalità di disegno di programmazione eseguendo il built-in di controllo CommandBar:

Call CommandBars("Drawing").Controls("Select Objects").Execute

E si può determinare la modalità corrente controllando il suo stato:

If CommandBars("Drawing").Controls("Select Objects").State Then
  Call Debug.Print("Select Object mode is on")
End If

In bocca al lupo!

Altri suggerimenti

Sarebbe questo link aiuto?

Ecco una sinossi:

Nel corso dell'applicazione, si hanno quattro scelte:

  • xlDefault
  • xlWait
  • xlBeam
  • xlNorthwestArrow

Si chiama le cose come:

Application.Cursor = xlDefault

Nel corso forme, si ha più scelte. Vedi l'articolo per ulteriori informazioni.

Non so cosa intendi con 'modalità di disegno'. Tuttavia, se si desidera modificare l'aspetto del cursore del mouse, la proprietà che stai cercando è Application.Cursor

È possibile impostare ad uno dei quattro valori predefiniti: xlWait, xlNorthwestArrow, xlIBeam e xlDefault

.

Se si desidera visualizzare altri cursori, uno sguardo questo articolo su come visualizzare un cursore personalizzato in Access. Dal momento che utilizza il WinAPI, la soluzione dovrebbe funzionare in modo uguale in Excel.

Modifica

In risposta alla tua modifica: Non credo che sia possibile fare ciò che si vuole. Il registratore di macro non prenderlo perché non v'è alcun comando VBA che può farlo. A seconda e ciò che si sta tentando di raggiungere passando alla modalità di progettazione, ci possono essere altri modi però.

Se si desidera mantenere all'utente di modificare i dati nella cartella di lavoro, è possibile nascondere la finestra completa di Excel utilizzando la Application.Visible proprietà.

Se si desidera mantenere l'utente di selezionare o changinganything, ma ancora visualizzare i dati, dare un'occhiata alla ActiveSheet.Protect o ActiveWorkbook.Protect, disponibile sotto Strumenti -. Protezione

Se si desidera spostare o ridimensionare alcuni controlli nella cartella di lavoro, si può fare a livello di codice cambiando il Left, Top, Height e Width proprietà del controllo, non è necessario per passa alla modalità di progettazione al fine di fare questo da macro.

Sono un po 'in ritardo alla festa' su questo, ma qui è la risposta a 'perché vuole fare questo', così come 'quello che vuole fare'.

'Turn ON 'Select Objects' option during initial display. While ON, cell input is prevented.
If CommandBars("Drawing").Controls("Select Objects").State = False Then
    CommandBars("Drawing").Controls("Select Objects").Execute
End If

Io uso questo in un'applicazione semplice timer che ha finestre di un pulsante di comando e di controllo a due sul display 'ActiveSheet'. Girando su 'Seleziona oggetti', mi limito gli obiettivi di ingresso del cursore a questi tre elementi. Le cellule non possono essere selezionati.

Saluti, Lawrence

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top