2008-09-15 8 views
4

Nous automatisons Excel à l'aide de VB.Net et essayons de placer plusieurs lignes de texte sur une feuille de calcul Excel que nous pouvons définir pour ne pas imprimer. Entre ceux-ci nous aurions des rapports imprimables. Nous pouvons le faire si nous ajoutons des objets de zone de texte et définissez le paramètre d'objet d'impression sur false. (Si vous avez une autre façon, s'il vous plaît me diriger)Comment placer un objet textbox sur une cellule spécifique lors de l'automatisation d'Excel?

Le code pour ajouter une zone de texte est:

ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 145.5, 227.25, 304.5, 21#) 

mais le positionnement est en points. Nous avons besoin d'un moyen de le placer sur une cellule spécifique et de le dimensionner avec la cellule. Comment pouvons-nous savoir où le mettre quand nous savons juste quelle cellule pour le remettre?

Répondre

8

Si vous avez le nom de la cellule ou la position, vous pouvez faire:

With ActiveSheet 
    .Shapes.AddTextbox msoTextOrientationHorizontal, .Cells(3,2).Left, .Cells(3,2).Top, .Cells(3,2).Width, .Cells(3,2).Height 
End With 

Cela va ajouter une zone de texte sur la cellule B3. Lorsque B3 est redimensionné, la zone de texte est également.

+0

J'aurais aimé le savoir il y a des années. M'aurait sauvé plusieurs gros maux de tête. –

0

Lorsque vous copiez & coller une zone de texte, Excel place la nouvelle zone de texte sur la cellule actuellement sélectionnée. Donc, vous pouvez réaliser cela très facilement en utilisant simplement les commandes VBA copier & coller. Cela peut être particulièrement utile si vous utilisez beaucoup de zones de texte très similaires, car vous créez effectivement un modèle de zone de texte.

Questions connexes