2013-07-16 11 views

risposta

7

In MS Word esistono due tipi di forme: InlineShapes e Shapes. E 'abbastanza facile da controllare il nome dell'oggetto forma con un po' di codice VBA:

  1. Scegli un modello
  2. premere Alt + F11 per aprire VBA Editor
  3. nella finestra immediata esecuzione di questo codice: ? Selection.ShapeRange.Name
  4. come risultato ottieni il nome della forma.

InlineShape non ha proprietà di nome, pertanto, non è possibile controllare il suo nome fino a promuovere la tua InlineShape-Shape tipo di oggetto.

+2

Grazie. Ctrl + G apre la finestra Immediata. – ftkg

+0

Stavo cercando un modo per fare riferimento alla forma selezionata attivamente e questo è perfetto. Grazie @Kazimierz – MJA

3

Da Microsoft Word 2010 in poi (2010, 2013 e 2016) c'è un "Riquadro di selezione" incluso nel Microsoft Word. Nel riquadro di selezione vengono elencati e denominati Microsoft Word InlineShapes e Shapes.

È possibile trovare il "riquadro di selezione" nel menu sotto

  1. "Home" -tab
  2. "Editing" -group
  3. "Select" -per
  4. "Riquadro di selezione. .. "
+1

La migliore risposta in questa intera discussione :) –

0

Il metodo più conveniente consiste nel creare un pulsante macro, accessibile dalle schede (ad es. Home, Inserisci, ecc.). In questo modo, fai semplicemente clic sulla forma, fai clic sul pulsante macro e voila - il nome della forma viene visualizzato in una finestra di messaggio (finestra a comparsa).

utilizzare il seguente codice:

MsgBox ActiveWindow.Selection.ShapeRange(1).name 
+0

Il codice può generare "Il valore non rientra nell'intervallo previsto" – PandaWood

0

Risposta corretta, spero)))

For Each ILShp In Doc.InlineShapes 
    If ILShp.Type = 5 Then   ' 5 (wdInlineShapeOLEControlObject) - OLE control object. (ComboBox and CheckBox) 
     ' if object is ComboBox 
     If CStr(ILShp.OLEFormat.ClassType) = "Forms.ComboBox.1" Then 
      Cb_Name = ILShp.OLEFormat.Object.Name   ' retuns ComboBox1 
     endif 
    Next