Buongiorno a tutti, chiedo il vostro aiuto per questo motivo. Ho inserito in un documento Word una casella di testo (controllo activex) vorrei accedere a tale controllo per esempio modificando il contenuto del testo. Ho provato il seguente codice, ma non funziona. Potete gentilmente aiutarmi?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Office.Interop.Word;
using Microsoft.Vbe.Interop.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Word.Application alex = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document alexdoc = new Microsoft.Office.Interop.Word.Document();
alexdoc = null;
try
{
alexdoc = alex.Documents.Open(@"C:\Users\Alex\Documents\doc1.docx");
alex.Visible = false;
alexdoc.Activate();
foreach (Shape shape in alexdoc.Shapes)
{
if (shape.OLEFormat != null && shape.OLEFormat is Microsoft.Vbe.Interop.Forms.TextBox)
{
var nome = (Microsoft.Vbe.Interop.Forms.TextBox)shape.OLEFormat.Object;
nome.Text = "alex";
}
label1.Text = shape.Name;
}
alexdoc.SaveAs2(@"C:\Users\Alex\Documents\alexmodificato.docx");
}
catch (System.Exception ex)
{
label1.Text = "errore" + ex.Message;
}
finally
{
alexdoc?.Close(false);
alex.Quit();
alexdoc = null;
alex = null;
}
}
}
}