Como você coloca um objeto de caixa de texto sobre uma célula específica ao automatizar o Excel?

StackOverflow https://stackoverflow.com/questions/66934

  •  09-06-2019
  •  | 
  •  

Pergunta

Estamos automatizando o Excel usando VB.Net e tentando colocar várias linhas de texto em uma planilha do Excel que podemos configurar para não imprimir.Entre estes teríamos relatórios imprimíveis.Podemos fazer isso se adicionarmos objetos de caixa de texto e definirmos a configuração do objeto de impressão como falso.(Se você tiver outra maneira, por favor me indique)

O código para adicionar uma caixa de texto é:

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

mas o posicionamento está em pontos.Precisamos de uma maneira de colocá-lo sobre uma célula específica e dimensioná-lo com a célula.Como podemos descobrir onde colocá-lo quando sabemos apenas em qual célula colocá-lo?

Foi útil?

Solução

Se você tiver o nome ou posição da célula, poderá fazer:

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

Isso adicionará uma caixa de texto na célula B3.Quando B3 é redimensionado, a caixa de texto também é.

Outras dicas

Quando você copia e cola uma caixa de texto, o Excel colocará a nova caixa de texto sobre a célula selecionada no momento.Portanto, você pode conseguir isso facilmente usando os comandos copiar e colar do VBA.Isso pode ser particularmente útil se você for usar muitas caixas de texto muito semelhantes, já que está efetivamente criando um modelo de caixa de texto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top