Word에서 하이퍼링크 제거하는 방법 (데스크톱, 온라인 및 C#)

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

Word에서 단일 또는 일괄 하이퍼링크 제거에 대한 시각적 가이드

요약 (TL;DR):

  • 하나 또는 소수의 하이퍼링크: 링크된 텍스트를 마우스 오른쪽 버튼으로 클릭하고 하이퍼링크 제거를 선택합니다.

  • 문서 내 모든 하이퍼링크:

    • Windows: Ctrl + A를 누른 다음 Ctrl + Shift + F9를 누릅니다.

    • Mac: Cmd + A를 누른 다음 Cmd + Shift + F9를 누릅니다. F9가 macOS 시스템 기능으로 할당된 경우 Cmd + Fn + Shift + F9를 사용하거나 Cmd + 6을 누릅니다.

  • Word가 설치되지 않은 경우: 웹용 Word(Word for the web)를 사용하여 브라우저에서 하이퍼링크를 제거합니다.

  • 여러 개의 Word 파일: C# 일괄 처리를 사용하여 자동으로 하이퍼링크를 제거합니다.

하이퍼링크는 Word 문서에서 웹사이트, 참조 자료 및 기타 리소스를 공유하는 데 유용합니다. 하지만 문서를 인쇄, 게시 또는 재사용하기 위해 준비할 때는 이러한 링크가 불필요해지거나 원치 않는 서식이 남을 수 있습니다.

이 가이드에서는 Microsoft Word에서 개별 및 모든 링크를 제거하는 방법부터 C#을 사용하여 여러 DOCX 파일의 정리를 자동화하는 방법까지, Word에서 하이퍼링크를 제거하는 방법을 설명합니다.

학습 내용:

Microsoft Word에서 하이퍼링크 제거하기

용도: 다른 문서 콘텐츠에 영향을 주지 않고 하나 또는 소수의 하이퍼링크를 제거할 때 적합합니다.

제거해야 할 링크 수가 적은 경우, Word의 내장된 하이퍼링크 제거 명령이 가장 안전하고 간단한 옵션입니다. 이 명령은 표시된 텍스트는 그대로 유지하면서 클릭 가능한 대상만 제거합니다.

이 방법은 목차, 인용, 상호 참조 또는 기타 동적 필드가 포함된 문서에서 선택한 하이퍼링크에만 영향을 주므로 특히 유용합니다.

단계별 지침

  1. Microsoft Word에서 문서를 엽니다.

  2. 제거하려는 하이퍼링크를 찾습니다.

  3. 링크된 텍스트를 마우스 오른쪽 버튼으로 클릭합니다.

  4. 하이퍼링크 제거를 선택합니다.

    하이퍼링크 제거 명령이 표시된 Microsoft Word 컨텍스트 메뉴

결과: 선택한 텍스트는 문서에 그대로 남지만 더 이상 클릭할 수 없습니다.

하이퍼링크가 제거된 후의 Word 텍스트

⚡ 팁: 하이퍼링크와 표시된 텍스트를 모두 삭제하려면 텍스트를 선택한 후 Delete 또는 Backspace 키를 누르세요.

Word 문서의 모든 하이퍼링크 한 번에 제거하기

용도: 비교적 단순한 Word 문서에서 많은 하이퍼링크를 빠르게 제거할 때 적합합니다.

수십 개의 링크를 하나씩 제거하는 것은 시간이 많이 걸립니다. Word는 선택한 콘텐츠에서 하이퍼링크를 한 번에 제거할 수 있는 키보드 단축키를 제공합니다.

Windows에서 모든 하이퍼링크 제거

  1. Ctrl + A를 눌러 문서의 모든 내용을 선택합니다. 처리하려는 섹션만 수동으로 선택할 수도 있습니다.

  2. Ctrl + Shift + F9를 누릅니다.

Mac에서 모든 하이퍼링크 제거

  1. Cmd + A를 눌러 문서 내용을 선택합니다.

  2. Cmd + Shift + F9를 누릅니다.
    ⚡ 팁: Mac에서 F9를 시스템 또는 미디어 기능으로 사용하는 경우 Cmd + Fn + Shift + F9를 사용하거나, Cmd + 6을 눌러 F9 키를 사용하지 않고 Word의 필드 연결 해제(UnlinkFields) 명령을 실행하세요.

결과: 선택한 모든 하이퍼링크가 원래의 문구는 유지한 채 일반 텍스트로 변환됩니다.

선택한 하이퍼링크가 일반 텍스트로 변환된 후의 Word 문서

⚠️ 중요: 이 단축키를 사용하기 전에 동적 필드를 확인하세요

Ctrl + Shift + F9는 하이퍼링크 전용 명령이 아닙니다. 이는 Word의 일반적인 필드 연결 해제 명령입니다.

즉, 선택 영역에 포함된 다른 필드도 정적 텍스트로 변환될 수 있습니다. 여기에는 다음이 포함될 수 있습니다:

  • 자동 생성된 목차

  • 상호 참조

  • 인용 필드

  • 기타 동적 Word 필드

보고서, 논문, 매뉴얼 또는 동적 필드에 의존하는 기타 문서의 경우, 단축키를 사용하기 전에 백업을 저장하십시오. 또한 Ctrl + A는 일반적으로 기본 문서 텍스트만 선택한다는 점에 유의하십시오. 머리글과 바닥글의 하이퍼링크는 별도로 처리해야 할 수 있습니다.

Word Online에서 하이퍼링크 제거하기

용도: 데스크톱 버전의 Microsoft Word를 사용할 수 없을 때 가끔 하이퍼링크를 제거해야 하는 경우에 적합합니다.

Word가 설치되어 있지 않은 경우, 웹용 Word(Word for the Web)에서 문서를 열어 브라우저에서 직접 하이퍼링크를 편집할 수 있습니다. 이는 소수의 링크를 처리할 때 편리하며 소프트웨어 설치가 전혀 필요하지 않습니다.

옵션 A: 팝업 도구 모음 (가장 빠름)

  1. 하이퍼링크가 걸린 텍스트를 클릭합니다.

  2. 팝업 도구 모음 오른쪽에 있는 연결 해제 아이콘(작은 "X"가 있는 체인 링크)을 클릭합니다.

    하이퍼링크에 대한 연결 해제 아이콘이 표시된 웹용 Word 팝업 도구 모음

옵션 B: 마우스 오른쪽 버튼 메뉴

  1. 하이퍼링크가 걸린 텍스트를 마우스 오른쪽 버튼으로 클릭합니다.

  2. 컨텍스트 메뉴에서 하이퍼링크 제거를 선택합니다.

웹용 Word에서 하이퍼링크를 제거할 수 없나요?

웹용 Word의 일부 링크는 회색으로 표시되거나 편집할 수 없을 수 있습니다. 일반적인 원인은 다음과 같습니다:

  • 변경 내용 추적: 변경 내용 추적 기능이 활성화된 상태에서 링크가 생성되거나 편집되었습니다.

  • 여러 단락에 걸친 링크: 링크가 여러 단락에 걸쳐 있으며 Word 데스크톱 버전에서 생성되었습니다.

해결 방법: 상단 리본의 편집 드롭다운 메뉴에 있는 데스크톱 앱에서 열기를 클릭하고 데스크톱 Word에서 링크를 제거하십시오.

C#을 사용하여 Word 문서에서 하이퍼링크 일괄 삭제하기

용도: 백엔드 문서 처리를 자동화하거나, 가져온 파일을 정리하거나, 대량의 Word 문서를 처리하는 개발자에게 적합합니다.

많은 Word 파일에 동일한 정리 작업을 적용해야 할 경우 수동 방법은 비효율적입니다. 이는 가져온 문서를 처리하거나, 게시 또는 보관을 위해 보고서를 준비하거나, 다른 시스템에서 생성된 파일을 정리할 때 흔히 발생합니다.

이러한 경우 C# 워크플로에 하이퍼링크 제거 기능을 통합할 수 있습니다. 다음 예제는 Spire.Doc for .NET을 사용하여 Microsoft Word를 설치하지 않고도 여러 DOCX 파일에서 하이퍼링크를 일괄 제거하는 방법을 보여줍니다.

1단계: .NET Word 라이브러리 설치

패키지 관리자 콘솔 또는 .NET CLI를 사용하여 NuGet을 통해 Spire.Doc for .NET을 설치합니다.

NuGet 패키지 관리자 콘솔:

Install-Package Spire.Doc

.NET CLI:

dotnet add package Spire.Doc

설치 후 필요한 네임스페이스를 C# 프로젝트에서 직접 참조할 수 있습니다.

2단계: DOCX 파일에서 하이퍼링크를 일괄 제거하는 C# 코드 작성

다음 예제는 입력 폴더에서 .docx 파일을 검색하여 각 문서의 하이퍼링크 필드를 식별하고, 표시된 텍스트는 유지하면서 하이퍼링크 필드를 제거한 다음, 처리된 파일을 별도의 출력 폴더에 저장합니다.

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";

            // 출력 폴더가 없으면 생성
            Directory.CreateDirectory(outputFolder);

            // 입력 폴더의 모든 DOCX 파일 처리
            foreach (string inputFile in Directory.GetFiles(inputFolder, "*.docx"))
            {
                // 임시 Word 파일 건너뛰기
                if (Path.GetFileName(inputFile).StartsWith("~$"))
                    continue;

                // Document 인스턴스 생성
                Document doc = new Document();

                // Word 문서 로드
                doc.LoadFromFile(inputFile);

                // 모든 하이퍼링크 찾기
                List<Field> hyperlinks = FindAllHyperlinks(doc);

                // 모든 하이퍼링크 평탄화(제거)
                for (int i = hyperlinks.Count - 1; i >= 0; i--)
                {
                    FlattenHyperlinks(hyperlinks[i]);
                }

                // 처리된 문서 저장
                string outputFile = Path.Combine(
                    outputFolder,
                    Path.GetFileName(inputFile));

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

                Console.WriteLine(
                    $"처리 완료: {Path.GetFileName(inputFile)}");
            }
        }

        // 문서 본문에서 모든 하이퍼링크 가져오기
        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;
        }

        // 표시된 텍스트를 유지하면서 하이퍼링크 필드 평탄화
        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);

            // 필드 끝 마커 제거
            field.End.OwnerParagraph.ChildObjects.RemoveAt(endIndex);

            // 필드 코드 및 구분 기호 제거
            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);
                }
            }
        }

        // 유지된 하이퍼링크 텍스트를 검은색으로 설정하고 밑줄 제거
        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);
                    }
                }
            }
        }

        // 유지된 하이퍼링크 텍스트를 밑줄 없는 검은색으로 설정
        private static void FormatText(TextRange textRange)
        {
            if (textRange == null)
                return;

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

3단계: 프로그램 실행

입력 및 출력 폴더 경로를 업데이트하고, DOCX 파일을 입력 폴더에 넣은 다음 애플리케이션을 실행합니다. 정리된 복사본이 원래 파일 이름으로 출력 폴더에 저장됩니다.

대량으로 처리하기 전에 몇 개의 대표 문서에서 프로그램을 먼저 테스트하십시오.

결과:

C#을 사용하여 하이퍼링크가 제거된 출력 Word 문서

⚠️ 기술 참고 사항: 이 C# 코드 조각은 최상위 본문 단락을 대상으로 합니다. 문서에 표, 텍스트 상자 또는 머리글/바닥글 내에 중첩된 하이퍼링크가 포함된 경우, 해당 자식 요소를 재귀적으로 스캔하도록 탐색 로직을 확장해야 합니다.

또한 이 코드는 유지된 하이퍼링크 텍스트를 검은색으로 재설정하고 밑줄을 제거합니다. 링크를 제거하지 않고 하이퍼링크의 색상을 변경하거나 밑줄을 제거하기만 하면 되는 경우, 하이퍼링크 서식을 별도로 수정할 수 있습니다.

보너스: Word가 자동으로 하이퍼링크를 생성하지 않도록 설정하기

진정한 문제가 Word가 입력할 때마다 URL과 이메일 주소를 링크로 계속 변환하는 것이라면, 나중에 반복적으로 제거하는 대신 자동 하이퍼링크 생성을 비활성화할 수 있습니다.

Word for Windows의 경우

  1. 왼쪽 상단 모서리에 있는 파일을 클릭한 다음 사이드바 하단의 옵션을 선택합니다.

  2. 왼쪽 창에서 언어 교정 범주를 선택합니다.

  3. 상단 근처의 자동 고침 옵션... 버튼을 클릭합니다.

  4. 입력할 때 자동 서식 탭으로 전환합니다.

  5. 인터넷과 네트워크 경로를 하이퍼링크로 설정 옆의 확인란을 선택 해제합니다.

  6. 확인을 클릭하여 적용합니다.

Word for Mac의 경우

  1. 상단 Apple 메뉴 막대에서 Word를 클릭하고 기본 설정을 선택합니다.

  2. 작성 섹션 아래의 자동 고침 도구를 엽니다.

  3. 입력할 때 자동 서식 탭으로 전환합니다.

  4. 인터넷과 네트워크 경로를 하이퍼링크로 설정의 선택을 취소합니다.

이 설정을 변경하면 Word가 입력하는 향후 링크를 서식 지정하는 것을 중단합니다. 현재 문서 내에 이미 저장된 하이퍼링크는 건드리거나 정리하지 않습니다.

Word 하이퍼링크 제거 후 확인해야 할 사항

하이퍼링크 제거는 일반적으로 간단하지만, 특히 서식, 동적 필드 및 별도의 문서 영역에 있는 링크와 관련하여 나중에 확인해야 할 몇 가지 세부 사항이 있습니다.

  • 텍스트 색상 및 밑줄 확인: 텍스트가 여전히 파란색이거나 밑줄이 그어져 있는 경우, 글꼴 색상을 자동으로 설정하거나 주변 텍스트와 일치시킨 다음 필요한 경우 밑줄을 제거하십시오.

  • 동적 필드 확인: Ctrl + Shift + F9 단축키를 사용한 경우 목차, 상호 참조 및 인용을 확인하십시오. 실수로 업데이트할 수 없는 일반 텍스트로 변환되지 않았는지 확인하십시오.

  • 머리글 및 바닥글 확인: Ctrl + A는 머리글과 바닥글 내부의 텍스트를 선택하지 않습니다. 남아 있는 숨겨진 링크를 지우려면 이러한 특정 영역 내부를 수동으로 두 번 클릭하십시오.

자주 묻는 질문(FAQ)

Q: 하이퍼링크를 제거하면 표시된 텍스트도 삭제되나요?

A: 아니요. 하이퍼링크 제거 명령은 표시된 텍스트는 그대로 유지하면서 링크만 제거합니다.

Q: 링크를 끊지 않고 파란색 밑줄만 제거하려면 어떻게 해야 하나요?

A: 하이퍼링크를 강조 표시하고 탭으로 이동하여 글꼴 색상을 자동으로 설정하거나 주변 텍스트와 일치시킨 다음, 밑줄 버튼을 클릭(또는 Ctrl + U 누르기)하여 밑줄을 끕니다.

Q: Word에서 이미지의 하이퍼링크를 제거하려면 어떻게 해야 하나요?

A: 하이퍼링크가 걸린 이미지를 마우스 오른쪽 버튼으로 클릭하고 하이퍼링크 제거를 선택합니다. 자동화된 문서 워크플로에서는 이미지 하이퍼링크도 프로그래밍 방식으로 관리할 수 있습니다.

Q: Word를 설치하지 않고도 Word에서 하이퍼링크를 제거할 수 있나요?

A: 네. 웹용 Word를 사용하여 브라우저에서 파일을 열고 편집할 수 있습니다. 여러 파일의 경우 Spire.Doc과 같은 소프트웨어 라이브러리와 C#을 사용하여 제거를 자동화할 수도 있습니다.

최종 생각

하이퍼링크를 제거하는 가장 좋은 방법은 편집 상황에 따라 다릅니다. 빠른 수동 편집의 경우 Word의 내장 명령과 키보드 단축키가 이상적입니다. 자동화된 문서 워크플로나 대량의 DOCX 파일 컬렉션의 경우, C# 스크립트 자동화가 안정적이고 확장 가능한 솔루션을 제공합니다.