Come rimuovere i collegamenti ipertestuali in Word (desktop, online e C#)

2026-08-28 07:29:48 jie zou
AI Summarize:
ChatGPT
ChatGPT
Claude
Grok
Perplexity
Quick
Quick
Concise overview
Highlights
Key takeaways
Detailed
Structured explanation
Brief
One sentence summary
Summarize |

Guida visiva alla rimozione di collegamenti ipertestuali singoli o in blocco in Word

Sintesi rapida (TL;DR):

  • Uno o pochi collegamenti: Fai clic con il tasto destro sul testo collegato e seleziona Rimuovi collegamento ipertestuale.

  • Tutti i collegamenti in un documento:

    • Windows: Premi Ctrl + A, quindi Ctrl + Shift + F9.

    • Mac: Premi Cmd + A, quindi Cmd + Shift + F9. Se F9 è assegnato a una funzione di sistema di macOS, usa Cmd + Fn + Shift + F9 o premi Cmd + 6.

  • Word non installato: Usa Word per il web per rimuovere i collegamenti ipertestuali in un browser.

  • Più file Word: Usa l'elaborazione in blocco con C# per rimuovere i collegamenti ipertestuali automaticamente.

I collegamenti ipertestuali sono utili per condividere siti web, riferimenti e altre risorse in un documento Word. Tuttavia, quando prepari un documento per la stampa, la pubblicazione o il riutilizzo, tali collegamenti possono diventare superflui o lasciare una formattazione non desiderata.

Questa guida mostra come rimuovere i collegamenti ipertestuali in Word, dalla rimozione di singoli collegamenti o di tutti i collegamenti in Microsoft Word, fino all'automazione della pulizia su più file DOCX con C#.

Cosa imparerai:

Rimuovere un collegamento ipertestuale in Microsoft Word

Ideale per: Rimuovere uno o pochi collegamenti ipertestuali senza influire sugli altri contenuti del documento.

Se è necessario rimuovere solo un numero limitato di collegamenti, il comando integrato di Word Rimuovi collegamento ipertestuale è l'opzione più sicura e diretta. Rimuove la destinazione cliccabile mantenendo il testo visualizzato al suo posto.

Questo metodo è particolarmente utile nei documenti contenenti indici, citazioni, riferimenti incrociati o altri campi dinamici, poiché viene influenzato solo il collegamento ipertestuale selezionato.

Istruzioni passo dopo passo

  1. Apri il documento in Microsoft Word.

  2. Individua il collegamento ipertestuale che desideri rimuovere.

  3. Fai clic con il tasto destro sul testo collegato.

  4. Seleziona Rimuovi collegamento ipertestuale.

    Menu contestuale di Microsoft Word che mostra il comando Rimuovi collegamento ipertestuale

Risultato: Il testo selezionato rimane nel documento, ma non è più cliccabile.

Testo di Word dopo la rimozione del collegamento ipertestuale

⚡ Suggerimento: Se desideri eliminare sia il collegamento ipertestuale che il testo visualizzato, seleziona il testo e premi Canc o Backspace.

Rimuovere tutti i collegamenti ipertestuali in un documento Word contemporaneamente

Ideale per: Rimuovere rapidamente molti collegamenti ipertestuali da un documento Word relativamente semplice.

Rimuovere decine di collegamenti uno per uno richiede tempo. Word fornisce una scorciatoia da tastiera in grado di eliminare i collegamenti ipertestuali dal contenuto selezionato in un'unica operazione.

Rimuovere tutti i collegamenti ipertestuali su Windows

  1. Premi Ctrl + A per selezionare tutto il contenuto del documento. Puoi anche selezionare manualmente solo la sezione che desideri elaborare.

  2. Premi Ctrl + Shift + F9.

Rimuovere tutti i collegamenti ipertestuali su Mac

  1. Premi Cmd + A per selezionare il contenuto del documento.

  2. Premi Cmd + Shift + F9.
    ⚡ Suggerimento: Se il tuo Mac usa F9 per una funzione di sistema o multimediale, usa Cmd + Fn + Shift + F9, oppure premi Cmd + 6 per eseguire il comando UnlinkFields di Word senza fare affidamento sul tasto F9.

Risultato: Tutti i collegamenti ipertestuali selezionati vengono convertiti in testo normale preservando la dicitura originale.

Documento Word dopo che i collegamenti ipertestuali selezionati sono stati convertiti in testo normale

⚠️ Importante: Controlla i campi dinamici prima di usare questa scorciatoia

Ctrl + Shift + F9 non è un comando specifico per i collegamenti ipertestuali. È il comando generale di Word Scollega campo.

Ciò significa che anche altri campi inclusi nella selezione possono essere convertiti in testo statico. Questi possono includere:

  • Indici generati automaticamente

  • Riferimenti incrociati

  • Campi di citazione

  • Altri campi dinamici di Word

Per report, tesi, manuali o altri documenti che si basano su campi dinamici, salva una copia di backup prima di utilizzare la scorciatoia. Nota inoltre che Ctrl + A seleziona normalmente il testo principale del documento. I collegamenti ipertestuali in intestazioni e piè di pagina potrebbero dover essere gestiti separatamente.

Rimuovere collegamenti ipertestuali da Word Online

Ideale per: Rimozione occasionale di collegamenti ipertestuali quando la versione desktop di Microsoft Word non è disponibile.

Se non hai Word installato, puoi aprire il tuo documento in Word per il Web per modificare i collegamenti ipertestuali direttamente in un browser. È comodo per un piccolo numero di collegamenti e non richiede l'installazione di alcun software.

Opzione A: La barra degli strumenti pop-up (più veloce)

  1. Fai clic sul testo con collegamento ipertestuale.

  2. Fai clic sull'icona Scollega (un anello di catena con una piccola "X") sul lato destro della barra degli strumenti pop-up.

    Barra degli strumenti pop-up di Word per il web che mostra l'icona Scollega per un collegamento ipertestuale

Opzione B: Il menu del tasto destro

  1. Fai clic con il tasto destro sul testo con collegamento ipertestuale.

  2. Seleziona Rimuovi collegamento ipertestuale dal menu contestuale.

Non riesci a rimuovere un collegamento ipertestuale in Word per il Web?

Alcuni collegamenti in Word per il Web potrebbero apparire grigi o non modificabili. Le cause comuni includono:

  • Revisioni: Il collegamento è stato creato o modificato mentre la funzione Revisioni era attiva.

  • Collegamenti su più paragrafi: Il collegamento si estende su più paragrafi ed è stato creato nella versione desktop di Word.

Soluzione: Fai clic su Apri nell'app desktop (situato nel menu a discesa Modifica sulla barra multifunzione in alto) e rimuovi i collegamenti in Word desktop.

Eliminazione in blocco di collegamenti ipertestuali da documenti Word con C#

Ideale per: Sviluppatori che automatizzano l'elaborazione dei documenti lato server, puliscono file importati o elaborano grandi raccolte di documenti Word.

I metodi manuali diventano inefficienti quando la stessa pulizia deve essere applicata a molti file Word. Questo è comune durante l'elaborazione di documenti importati, la preparazione di report per la pubblicazione o l'archiviazione, o la pulizia di file generati da un altro sistema.

In questi casi, la rimozione dei collegamenti ipertestuali può essere integrata in un flusso di lavoro C#. L'esempio seguente utilizza Spire.Doc for .NET per rimuovere in blocco i collegamenti ipertestuali da più file DOCX senza richiedere l'installazione di Microsoft Word.

Passaggio 1: Installare la libreria .NET Word

Installa Spire.Doc for .NET tramite NuGet usando la Console di Gestione pacchetti o la CLI .NET.

Console di Gestione pacchetti NuGet:

Install-Package Spire.Doc

CLI .NET:

dotnet add package Spire.Doc

Dopo l'installazione, i namespace richiesti possono essere referenziati direttamente nel tuo progetto C#.

Passaggio 2: Scrivere il codice C# per rimuovere in blocco i collegamenti ipertestuali dai file DOCX

L'esempio seguente scansiona una cartella di input alla ricerca di file .docx, identifica i campi dei collegamenti ipertestuali in ogni documento, rimuove i campi dei collegamenti mantenendo il testo visualizzato e salva i file elaborati in una cartella di output separata.

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;

namespace Remove_Hyperlinks
{
    class Program
    {
        static void Main(string[] args)
        {
            string inputFolder = @"C:\WordFiles\Input";
            string outputFolder = @"C:\WordFiles\Output";

            // Crea la cartella di output se non esiste
            Directory.CreateDirectory(outputFolder);

            // Elabora tutti i file DOCX nella cartella di input
            foreach (string inputFile in Directory.GetFiles(inputFolder, "*.docx"))
            {
                // Salta i file Word temporanei
                if (Path.GetFileName(inputFile).StartsWith("~$"))
                    continue;

                // Crea un'istanza di Document
                Document doc = new Document();

                // Carica un documento Word
                doc.LoadFromFile(inputFile);

                // Trova tutti i collegamenti ipertestuali
                List<Field> hyperlinks = FindAllHyperlinks(doc);

                // Appiattisci tutti i collegamenti ipertestuali
                for (int i = hyperlinks.Count - 1; i >= 0; i--)
                {
                    FlattenHyperlinks(hyperlinks[i]);
                }

                // Salva il documento elaborato
                string outputFile = Path.Combine(
                    outputFolder,
                    Path.GetFileName(inputFile));

                doc.SaveToFile(outputFile, FileFormat.Docx);
                doc.Close();

                Console.WriteLine(
                    $"Elaborato: {Path.GetFileName(inputFile)}");
            }
        }

        // Ottieni tutti i collegamenti ipertestuali dal corpo del documento
        private static List<Field> FindAllHyperlinks(Document document)
        {
            List<Field> hyperlinks = new List<Field>();

            foreach (Section section in document.Sections)
            {
                foreach (DocumentObject sec in section.Body.ChildObjects)
                {
                    if (sec.DocumentObjectType == DocumentObjectType.Paragraph)
                    {
                        foreach (DocumentObject para
                                 in (sec as Paragraph).ChildObjects)
                        {
                            if (para.DocumentObjectType ==
                                DocumentObjectType.Field)
                            {
                                Field field = para as Field;

                                if (field.Type == FieldType.FieldHyperlink)
                                {
                                    hyperlinks.Add(field);
                                }
                            }
                        }
                    }
                }
            }

            return hyperlinks;
        }

        // Appiattisci un campo di collegamento ipertestuale mantenendo il testo visualizzato
        private static void FlattenHyperlinks(Field field)
        {
            int ownerParaIndex =
                field.OwnerParagraph.OwnerTextBody.ChildObjects
                    .IndexOf(field.OwnerParagraph);

            int fieldIndex =
                field.OwnerParagraph.ChildObjects.IndexOf(field);

            Paragraph sepOwnerPara =
                field.Separator.OwnerParagraph;

            int sepOwnerParaIndex =
                field.Separator.OwnerParagraph.OwnerTextBody.ChildObjects
                    .IndexOf(field.Separator.OwnerParagraph);

            int sepIndex =
                field.Separator.OwnerParagraph.ChildObjects
                    .IndexOf(field.Separator);

            int endIndex =
                field.End.OwnerParagraph.ChildObjects
                    .IndexOf(field.End);

            int endOwnerParaIndex =
                field.End.OwnerParagraph.OwnerTextBody.ChildObjects
                    .IndexOf(field.End.OwnerParagraph);

            FormatFieldResultText(
                field.Separator.OwnerParagraph.OwnerTextBody,
                sepOwnerParaIndex,
                endOwnerParaIndex,
                sepIndex,
                endIndex);

            // Rimuovi il marcatore di fine campo
            field.End.OwnerParagraph.ChildObjects.RemoveAt(endIndex);

            // Rimuovi il codice di campo e il separatore
            for (int i = sepOwnerParaIndex; i >= ownerParaIndex; i--)
            {
                if (i == sepOwnerParaIndex && i == ownerParaIndex)
                {
                    for (int j = sepIndex; j >= fieldIndex; j--)
                    {
                        field.OwnerParagraph.ChildObjects.RemoveAt(j);
                    }
                }
                else if (i == ownerParaIndex)
                {
                    for (int j =
                            field.OwnerParagraph.ChildObjects.Count - 1;
                         j >= fieldIndex;
                         j--)
                    {
                        field.OwnerParagraph.ChildObjects.RemoveAt(j);
                    }
                }
                else if (i == sepOwnerParaIndex)
                {
                    for (int j = sepIndex; j >= 0; j--)
                    {
                        sepOwnerPara.ChildObjects.RemoveAt(j);
                    }
                }
                else
                {
                    field.OwnerParagraph.OwnerTextBody.ChildObjects
                        .RemoveAt(i);
                }
            }
        }

        // Imposta il testo del collegamento ipertestuale mantenuto su nero e rimuovi la sottolineatura
        private static void FormatFieldResultText(
            Body ownerBody,
            int sepOwnerParaIndex,
            int endOwnerParaIndex,
            int sepIndex,
            int endIndex)
        {
            for (int i = sepOwnerParaIndex;
                 i <= endOwnerParaIndex;
                 i++)
            {
                Paragraph para =
                    ownerBody.ChildObjects[i] as Paragraph;

                if (i == sepOwnerParaIndex &&
                    i == endOwnerParaIndex)
                {
                    for (int j = sepIndex + 1; j < endIndex; j++)
                    {
                        FormatText(para.ChildObjects[j] as TextRange);
                    }
                }
                else if (i == sepOwnerParaIndex)
                {
                    for (int j = sepIndex + 1;
                         j < para.ChildObjects.Count;
                         j++)
                    {
                        FormatText(para.ChildObjects[j] as TextRange);
                    }
                }
                else if (i == endOwnerParaIndex)
                {
                    for (int j = 0; j < endIndex; j++)
                    {
                        FormatText(para.ChildObjects[j] as TextRange);
                    }
                }
                else
                {
                    for (int j = 0;
                         j < para.ChildObjects.Count;
                         j++)
                    {
                        FormatText(para.ChildObjects[j] as TextRange);
                    }
                }
            }
        }

        // Imposta il testo del collegamento ipertestuale mantenuto su nero senza sottolineatura
        private static void FormatText(TextRange textRange)
        {
            if (textRange == null)
                return;

            textRange.CharacterFormat.TextColor = Color.Black;
            textRange.CharacterFormat.UnderlineStyle =
                UnderlineStyle.None;
        }
    }
}

Passaggio 3: Eseguire il programma

Aggiorna i percorsi delle cartelle di input e output, inserisci i file DOCX nella cartella di input ed esegui l'applicazione. Le copie pulite verranno salvate nella cartella di output con i nomi file originali.

Per un lotto di grandi dimensioni, testa prima il programma su alcuni documenti rappresentativi.

Output:

Documento Word di output con collegamenti ipertestuali rimossi usando C#

⚠️ Nota tecnica: Questo snippet C# punta ai paragrafi del corpo di primo livello. Se i tuoi documenti contengono collegamenti ipertestuali annidati all'interno di tabelle, caselle di testo o intestazioni/piè di pagina, la logica di attraversamento dovrebbe essere estesa per scansionare tali elementi figlio in modo ricorsivo.

Il codice reimposta anche il testo del collegamento ipertestuale mantenuto su nero e rimuove la sottolineatura. Se hai solo bisogno di cambiare il colore o rimuovere la sottolineatura dai collegamenti ipertestuali senza rimuovere i collegamenti stessi, puoi modificare la formattazione del collegamento ipertestuale separatamente.

Bonus: Impedire a Word di creare collegamenti ipertestuali automaticamente

Se il vero problema è che Word continua a trasformare URL e indirizzi email in collegamenti mentre scrivi, puoi disabilitare la creazione automatica dei collegamenti ipertestuali invece di rimuoverli ripetutamente in seguito.

In Word per Windows

  1. Fai clic su File nell'angolo in alto a sinistra, quindi scegli Opzioni in fondo alla barra laterale.

  2. Seleziona la categoria Strumenti di correzione dal riquadro sinistro.

  3. Fai clic sul pulsante Opzioni correzione automatica... vicino alla parte superiore.

  4. Passa alla scheda Formattazione automatica durante la digitazione.

  5. Deseleziona la casella accanto a Percorsi Internet e di rete con collegamenti ipertestuali.

  6. Fai clic su OK per applicare.

In Word per Mac

  1. Fai clic su Word nella barra dei menu Apple in alto e seleziona Preferenze.

  2. Apri lo strumento Correzione automatica nella sezione Creazione.

  3. Passa alla scheda Formattazione automatica durante la digitazione.

  4. Deseleziona Percorsi Internet e di rete con collegamenti ipertestuali.

La modifica di questa impostazione impedisce a Word di formattare i collegamenti futuri mentre scrivi. Non toccherà o pulirà i collegamenti ipertestuali già salvati all'interno del documento corrente.

Cose da controllare dopo aver rimosso i collegamenti ipertestuali di Word

La rimozione dei collegamenti ipertestuali è solitamente semplice, ma vale la pena controllare alcuni dettagli in seguito, specialmente la formattazione, i campi dinamici e i collegamenti in aree separate del documento.

  • Controlla il colore del testo e le sottolineature: Se il testo rimane blu o sottolineato, imposta il colore del carattere su Automatico o abbinalo al testo circostante, quindi rimuovi la sottolineatura se necessario.

  • Verifica i campi dinamici: Se hai utilizzato la scorciatoia Ctrl + Shift + F9, controlla l'indice, i riferimenti incrociati e le citazioni. Assicurati che non siano stati accidentalmente convertiti in testo normale non aggiornabile.

  • Controlla intestazioni e piè di pagina: Ctrl + A non seleziona il testo all'interno di intestazioni e piè di pagina. Fai doppio clic manualmente all'interno di queste aree specifiche per eliminare i collegamenti nascosti rimanenti.

Domande frequenti

D: La rimozione di un collegamento ipertestuale elimina il testo visualizzato?

R: No. Il comando Rimuovi collegamento ipertestuale rimuove il collegamento mantenendo il testo visualizzato al suo posto.

D: Come posso rimuovere la sottolineatura blu senza interrompere il collegamento?

R: Evidenzia il collegamento ipertestuale, vai alla scheda Home, imposta il colore del carattere su Automatico o abbinalo al testo circostante, quindi fai clic sul pulsante Sottolineato (o premi Ctrl + U) per disattivare la sottolineatura.

D: Come rimuovo un collegamento ipertestuale da un'immagine in Word?

R: Fai clic con il tasto destro sull'immagine con collegamento ipertestuale e seleziona Rimuovi collegamento ipertestuale. Nei flussi di lavoro documentali automatizzati, i collegamenti ipertestuali delle immagini possono anche essere gestiti a livello di programmazione.

D: Posso rimuovere i collegamenti ipertestuali da Word senza installare Word?

R: Sì. Puoi aprire e modificare il file in un browser utilizzando Word per il web. Per più file, puoi anche utilizzare C# con una libreria software come Spire.Doc per automatizzare la rimozione.

Considerazioni finali

Scegliere il modo migliore per rimuovere i collegamenti ipertestuali dipende dal tuo contesto di modifica. Per modifiche manuali rapide, i comandi integrati e le scorciatoie da tastiera di Word sono ideali. Per flussi di lavoro documentali automatizzati o grandi raccolte di file DOCX, l'automazione tramite script C# fornisce una soluzione affidabile e scalabile.