ExcelでテキストURLの列をアクティブなハイパーリンクに変換するにはどうすればよいですか?


275

Excelに列があり、すべてのWebサイトのURL値を持っています。私の質問は、URLの値をアクティブなリンクに変えたいです。その列には約200のエントリがあり、すべてのセルに異なるURLが含まれています。マクロを書かずにすべてのセルへのアクティブなハイパーリンクを作成できる方法はありますか?

回答:


314

マクロを作成したくない場合は、追加の列を気にしない限り、URLの列の横に新しい列を作成します。

数式の新しい列の種類=HYPERLINK(A1)(A1を目的のセルに置き換えます)。次に、式を残りの200エントリにコピーします。

注:セルA1に255文字を超える文字列が含まれている場合、このソリューションは機能しません。それは、その結果#VALUE!エラー


2
列Aに200個のリンク値が含まれている場合、新しい列を作成する代わりに、200個の値をハイパーリンクし、列Aでそれを書き換える式を作成できますか?
開発者

1
優れた!一番良いのは、このステップがとても簡単なので、CSVファイルを素人に渡して、簡単にURLを生成できることです。
Cardin Lee JH 2015年

3
それを1つの列にするには、ハイパーリンク列をコピーし、保持したい列に「値を貼り付け」ます。
マイク

1
ほとんどのユースケースを解決するので、これは受け入れられるべき答えです。
Jay

ハイパーリンクではない未加工の列を非表示にする
RickAndMSFT

94

次のようにマクロを作成します。

Microsoft Excelの[ツール]メニューの[マクロ]をポイントし、[Visual Basic Editor]をクリックします。[挿入]メニューの[モジュール]をクリックします。このコードをコピーして、モジュールのコードウィンドウに貼り付けます。自動的にHyperAddと名付けられます。

Sub HyperAdd()

    'Converts each text hyperlink selected into a working hyperlink

    For Each xCell In Selection
        ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=xCell.Formula
    Next xCell

End Sub

マクロの貼り付けが完了したら、[ファイル]メニューの[終了してMicrosoft Excelに戻る]をクリックします。

次に、必要なセルを選択し、マクロをクリックして、実行をクリックします。

列全体を選択しないでください。クリック可能なリンクに変更するセルのみを選択してください。選択しないと、無限ループに陥り、Excelを再起動する必要があります。できた!


2
明示的なオプションを使用している場合は、Dim xCell As Rangeを追加します。(要求されたとおりに)セルを変更し、それを行うコードを提供するソリューションの+1。
Praesagus 2014

これは私にとってはうまくいきました。更新が必要なスプレッドシートに約50,000のリンクがあり、それをチャンクで行う必要があった場合、Excelがクラッシュします。
ATek

2
電子メールアドレスをハイパーリンクにするAddress:=xCell.Formulaには、次のように変更しますAddress:="mailto:" & xCell.Formula
Danny Beckett

また、URLので始まらないhttp://上記の変更を使用します(追加するこのニーズが、代替mailto:http://そうでない場合は、ハイパーリンクが作業をしないでください。。
ダニー・ベケット

1
よく働く。FYI Excel 2016では、ワークシートあたりのハイパーリンク数が66,530に制限されているため、これを超えると、最終的に実行時エラーが発生します。support.office.com/en-us/article/…–
クリストファーオブライエン

24

これが私が見つけた方法です。Excel 2011を使用しているMacを使用しています。列Bにハイパーリンクにしたいテキスト値が含まれている場合は、この数式をセルC1(またはD1または空の列であれば何でもかまいません)に入力します。=HYPERLINK(B1,B1) これにより、次のハイパーリンクが挿入されますリンクテキストとしての場所とリンクテキストとしての「フレンドリ名」。各リンクにわかりやすい名前を付けた別の列がある場合は、それも使用できます。その後、表示したくない場合は、テキスト列を非表示にすることができます。

何かのIDのリストがあり、URLがすべてのhttp://website.com/folder/ID場合は、次のようになります。

A1  | B1
101 | http://website.com/folder/101
102 | http://website.com/folder/102
103 | http://website.com/folder/103
104 | http://website.com/folder/104

のようなものを使用でき=HYPERLINK("http://website.com/folder/"&A1,A1)、URLのリストは必要ありません。それが私の状況で、うまくいきました。

この投稿によると:http : //excelhints.com/2007/06/12/hyperlink-formula-in-excel/この方法はExcel 2007でも機能します。


Windows、Excel 2013で機能し、追加の列の代わりに使用できます。
mdisibio 2017

ちなみに、Open Officeの場合、上記でエラーが発生しましたが、= HYPERLINK(C1)がパラメーターを1つだけ指定すると機能するようです
tonypdmtr

19

わかりました、これはホッケーなソリューションですが、URLの列をハイパーリンクとして一括してExcelで評価する方法を理解することができません。

  1. 式を作成し、 ="=hyperlink(""" & A1 & """)"
  2. 下にドラッグ
  3. 新しい数式列をコピー
  4. 元の列にのみ特殊値を貼り付け
  5. 列を強調表示し、Ctrl- H(置換)をクリックして、検索と置換を=行います=(どういうわけかセルの再評価を強制します)。
  6. セルはハイパーリンクとしてクリック可能になります。青/下線スタイルが必要な場合は、すべてのセルを強調表示して、ハイパーリンクスタイルを選択します。

ハイパーリンクスタイルだけではクリック可能なリンクに変換されません。また、[ハイパーリンクの挿入]ダイアログでは、大量のセルのアドレスとしてテキストを使用することはできません。それはさておき、F2およびEnterすべてのセルを介してそれを行うが、それは、細胞のロットの面倒だでしょう。


3
=(HYPERLINK(INDIRECT(ADDRESS(ROW()、COLUMN()+ 1))、 "Dress"&ROW()))を実行するだけの方が簡単です
Nick Turner

これは、2つの列を維持する必要がない最良の答えです。
マット

+1置換の場合==-> '='。私が探しているもの。ありがとう。
開発者

18

かなり短いリストのかなり簡単な方法:

  1. URLがあるボックスをダブルクリックします
  2. 入る

あなたはあなたのリンクを持っています;)


14
F2を使用してセルを編集してから、繰り返し入力してリストをすばやく実行します。シンプル。ありがとうございました!
ブライアンアッシュ

1
これに加えて、F2についてのコメントにより、約1分で160のハイパーリンクの列にたどり着きました。ええ、列が十分に短い場合、これが先の方法です。
Trevor Brown

これは、何百もの細胞を持つ人が変換するための解決策になるとは思いません。
Ma3x 2017年

287,000行あります。泣く。
thejohnbackes

12

場合は、ハイパーリンクで余分な列を追加するオプションではありません、代わりにあなたは、ハイパーリンクを囲むために、外部エディタを使用すること=hyperlink("")、取得するために、=hyperlink("originalCellContent")

Notepad ++がある場合、これはこの操作を半自動的に実行するために使用できるレシピです。

  • アドレスの列をNotepad ++にコピーする
  • 維持ALT- SHIFTトップは、左下隅、およびタイプにコーナーを左から押し、カーソルを延長=hyperlink("。これは追加します=hyperlink("、各エントリの先頭にれます。
  • [置換]メニュー(Ctrl- H)を開き、正規表現を有効にし(ALT- G)、$(行末)をに置き換え"\)ます。これは閉じられた引用と閉じ括弧を追加します(これは\各行の終わりに正規表現がアクティブ化されるとき)が追加されます。
  • Excelにデータを貼り付けます。実際には、データをコピーして、データを配置する列の最初のセルを選択するだけです。

すばらしい答えです。これは、追加の列が必要ない場合に使用できる唯一の方法です。このソリューションは、(Notepad ++だけでなく)あらゆる種類のエディターまたはプログラミング言語に使用できます。Excel 2010では、これによりクリック可能なリンクが作成されますが、「ハイパーリンクの書式設定スタイル」を手動で適用して、リンクのように見えるようにする必要があります(青い下線付き)。
ばかげた

注:これにはnotepad ++は必要ありません...わかりやすくするために、テキストエディターでこれを行うことができます。トリックは=hyperlink("__linecontentgoeshere__")、notepad ++の言及に惑わされる可能性のある人のために...で各行をラップするだけです
dreftymac

@dreftymacこれは、行ごとに編集するのではなく、ほとんど自動的にこれを行う方法のレシピを提供します。Notepad ++機能を利用して、カーソルを複数行に拡張し、正規表現をサポートします。他のエディターは同様の機能を持っているかもしれません。誤解を取り除くために、私の回答の冒頭で、意図された結果が何であるかを明確にしています。
アントニオ

1
//回答の冒頭で、意図した結果を明確にしています//強調していただきありがとうございます。私はあなたの答えを批判していませんでした、Notepad ++について何も知らないかもしれない人のためにもう少し明確にしてください、そしてそれが単にこの種のことをすることができる多くのテキストエディターの1つであることに気づかないかもしれません。私はあなたがそれ理解していることを知っていますが、誰もがそうしているわけではありません。
dreftymac

1
Excelで数式を作成することもできます="=HYPERLINK("""&A1&""")"(URLがA1にあると想定)。次に、結果をメモ帳にコピーしてExcelに戻します(より良い方法があるかもしれません)。これで作業中のハイパーリンクが作成されました。[スタイル]パネルからハイパーリンクスタイルを適用して、青い下線付きの外観にすることができます。列Bにリンクラベルがある場合は、次の式を使用できます="=HYPERLINK("""&A1&""";"""&B1&""")"
ジョナスJančařík

7

この方法は、ハイパーリンク機能を使用して私に働きます:

=HYPERLINK("http://"&B10,B10)

B10(この例では)URLのテキストバージョンを含むセルはどこにありますか。


= HYPERLINK( "http://"&B10、B10)はExcel 2013では機能しませんでしたが、= HYPERLINK( "http://"&B10)DIDは機能しました。
agibsen 2013年

5

Windows上のExcel 2007では、これらの手順が最も簡単であることがわかりました。

  1. 非アクティブなURLのセルを選択します
  2. コピーする
  3. ハイパーリンクとして貼り付け

1
それ以降のバージョン(Office 2011を使用しています)では、これは機能しません-セルに表示されているURLではなく、デスクトップファイル(このファイル)へのハイパーリンクを取得するだけです。例file:// localhost / Users / xxxx / Desktop / Blahblahblah File Name.xlsx-Sheet1!A2
Dannid

4

Excelはこれを自動的に実行しなかったのでショックを受けました。これが私のソリューションです。他のユーザーに役立つと思います。

  1. 列全体をクリップボードにコピー
  2. これをChromeまたはFirefoxで開きます

data:text/html,<button onclick="document.write(document.body.querySelector('textarea').value.split('\n').map(x => '<a href=\'' + x + '\'>' + x + '</a>').join('<br>'))">Linkify</button><br><textarea></textarea>

  1. ブラウザで開いたばかりのページに列を貼り付け、「Linkify」を押します
  2. 結果をタブからExcelの列にコピーする

ステップ2の代わりに、以下のページを使用できます。最初に、[コードスニペットの実行]をクリックしてから、列を貼り付けます

<button onclick="document.write(document.body.querySelector('textarea').value.split('\n').map(x => '<a href=\'' + x + '\'>' + x + '</a>').join('<br>'))">Linkify</button><br><textarea></textarea>


3

テキスト形式のURLが含まれる列全体を別のアプリケーション(Evernoteなど)にコピーし、貼り付けられたときにリンクになり、Excelにコピーし直しました。

ここでの唯一のことは、コピーしたデータが残りの列と一致することを確認する必要があることです。



2

ローカルの場所にリンクしているため、ハイパーリンクにhttp://が含まれていない場合、ここでの方法はどれも機能しませんでした。

また、ユーザーがスクリプトを自分で保守することができず、対応できないので、スクリプトを簡単に修正したかったのです。

ドットが含まれ、スペースが含まれていない場合、選択した範囲のセルでのみ実行されます。最大10,000セルでのみ動作します。

Sub HyperAdd()
Dim CellsWithSpaces As String
    'Converts each text hyperlink selected into a working hyperlink
    Application.ScreenUpdating = False
    Dim NotPresent As Integer
    NotPresent = 0

    For Each xCell In Selection
        xCell.Formula = Trim(xCell.Formula)
        If xCell.Formula = "" Or InStr(xCell.Formula, ".") = NotPresent Then
        'Do nothing if the cell is blank or contains no dots
        Else
            If InStr(xCell.Formula, " ") <> 0 Then
                CellsWithSpaces = CellsWithSpaces & ", " & Replace(xCell.Address, "$", "")
                 GoTo Nextxcell
            End If

            If InStr(xCell.Formula, "http") <> 0 Then
                Hyperstring = Trim(xCell.Formula)
            Else
                Hyperstring = "http://" & Trim(xCell.Formula)
            End If

            ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=Hyperstring

        End If
        i = i + 1
        If i = 10000 Then Exit Sub
Nextxcell:
      Next xCell
    If Not CellsWithSpaces = "" Then
        MsgBox ("Please remove spaces from the following cells:" & CellsWithSpaces)
    End If
Application.ScreenUpdating = True
End Sub

1
おかげで、これは、Excel文書内の電子メールアドレスのために働いていた-私はいくつかの他のさまざまな方法を試してみたが、これは、私は、HTTP変更する必要が働いていたものだった://のmailtoに:
bawpie

2
  1. 式= HYPERLINK()を使用して、ハイパーリンクの一時的な新しい列を作成します
  2. その列をMicrosoft Wordにコピーします(Wordの実行後にのみクリップボードにコピーします)。
  3. 新しいワードドキュメントのすべてをコピーします(Ctrl + A、Ctrl + C)。
  4. テキストの元の列を置き換えて、Excelに貼り付けます。式を含む一時的な列を削除します。

1

=HYPERLINK(<your_cell>,<your_cell>)隣接するセルに数式を挿入して、一番下までドラッグできます。これにより、すべてのリンクを含む列が表示されます。これで、ヘッダーをクリックして右クリックし、を選択して、元の列を選択できますHide


1

URLをHTMLテーブルに入れ、HTMLページをブラウザに読み込み、そのページのコンテンツをコピーし、Excelに貼り付けます。この時点で、URLはアクティブなリンクとして保持されます。

解決策はhttp://answers.microsoft.com/en-us/mac/forum/macoffice2008-macexcel/how-to-copy-and-paste-to-mac-excel-2008-a-list-of/で提案されましたc5fa2890-acf5-461d-adb5-32480855e11e by(Jim Gordon Mac MVP)[ http://answers.microsoft.com/en-us/profile/75a2b744-a259-49bb-8eb1-7db61dae9e78]

私はそれがうまくいったことを発見しました。

私はこれらのURLを持っていました:

https://twitter.com/keeseter/status/578350771235872768/photo/1 https://instagram.com/p/ys5ASPCDEV/ https://igcdn-photos-ga.akamaihd.net/hphotos-ak-xfa1/t51 .2885-15 / 10881854_329617847240910_1814142151_n.jpg https://twitter.com/ranadotson/status/539485028712189952/photo/1 https://instagram.com/p/0OgdvyxMhW/ https://instagram.com/p/1nynTiiLSb/

これらを次のようにHTMLファイル(links.html)に入れます。

<table>
<tr><td><a href="https://twitter.com/keeseter/status/578350771235872768/photo/1">https://twitter.com/keeseter/status/578350771235872768/photo/1</a></td></tr>
<tr><td><a href="https://instagram.com/p/ys5ASPCDEV/">https://instagram.com/p/ys5ASPCDEV/</a></td></tr>
<tr><td><a href="https://igcdn-photos-g-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-15/10881854_329617847240910_1814142151_n.jpg">https://igcdn-photos-g-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-15/10881854_329617847240910_1814142151_n.jpg</a></td></tr>
<tr><td><a href="https://twitter.com/ranadotson/status/539485028712189952/photo/1">https://twitter.com/ranadotson/status/539485028712189952/photo/1</a></td></tr>
<tr><td><a href="https://instagram.com/p/0OgdvyxMhW/">https://instagram.com/p/0OgdvyxMhW/</a></td></tr>
</table>

次に、links.htmlをブラウザーにロードし、コピーしてExcelに貼り付けたところ、リンクはアクティブでした。


1

カシオペアにコードをありがとう。私は彼のコードをローカルアドレスで動作するように変更し、彼の状態にほとんど変更を加えませんでした。次の条件を削除しました:

  1. 変更http:/file:///
  2. すべてのタイプの空白条件を削除
  3. 10kセル範囲条件を100kに変更

Sub HyperAddForLocalLinks()
Dim CellsWithSpaces As String
    'Converts each text hyperlink selected into a working hyperlink
    Application.ScreenUpdating = False
    Dim NotPresent As Integer
    NotPresent = 0

    For Each xCell In Selection
        xCell.Formula = Trim(xCell.Formula)
            If InStr(xCell.Formula, "file:///") <> 0 Then
                Hyperstring = Trim(xCell.Formula)
            Else
                Hyperstring = "file:///" & Trim(xCell.Formula)
            End If

            ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=Hyperstring

        i = i + 1
        If i = 100000 Then Exit Sub
Nextxcell:
      Next xCell
    Application.ScreenUpdating = True
End Sub

完璧に機能し、わずか数秒で〜7000ハイパーリンクを作成しました。:)カシオペアありがとうございます。
Junaid、2016年

なぜ定義したのNotPresentですか?
Steffen Roller

以前のカシオペアの返答から上のコードをコピーしました。そして、私が理解できる限りそれを修正しました。そのため、NotPresentが必要かどうかわかりません。しかし、変更したコードは完全に問題なく動作します。
Junaid

1

ホットリンクしたいURLにフィードする番号のリストがありました。たとえば、列Aに質問番号(つまり、2595692、135171)があり、これらの質問番号をホットリンクに変換して、質問番号のみを表示したいとします。

そこで、列Aを指すテキストのみのハイパーリンクを作成し、すべての質問番号にコピーしました。

= "= HYPERLINK("& "" "http" "&" ":" ""& ""& "&"& "" "// stackoverflow.com/questions/"&A1&""""&","&A1& 「)」

次に、コピーして、テキストハイパーリンクのこの列の値を別の列に貼り付けます。

次のようなテキストの列ができあがります。

= HYPERLINK( "http"& ":"& "// stackoverflow.com/questions/2595692",2595692)

次に、これらの貼り付けたアイテムを選択し、次のF2Entryマクロを実行しました。

Sub F2Enter()
Dim cell As Range
Application.Calculation = xlCalculationManual
For Each cell In Selection
    cell.Activate
    cell = Trim(cell)
Next cell
Application.Calculation = xlCalculationAutomatic
EndSub

次に、テキスト入力列と列Aを削除しました。

結局、ホットリンクされた質問番号の単一の列ができました。

2595692

135171

乾杯


0

テキストの内容を新しい列にコピーして使用する場合:

=HYPERLINK("http://"&B10,B10) 

元の列に。次に$、列にを使用して、次のようにします。

=HYPERLINK("http://"&$B10,$B10)

これがWindows 7のExcel 2010で機能する唯一の方法です。数式をコピーしてください。


0

Excel 2016を使用してここに着く人は、列を強調表示して、ボックスのリボンにHyperlinkあるタブをクリックするだけです。HomeStyles

ここに画像の説明を入力してください

編集:残念ながら、これはセルスタイルのみを更新し、関数は更新しません。


3
これはセルのスタイルのみを提供し、URLをクリック可能にするものではありません。
stenlytw 2018

1
ええ、これは素晴らしい解決策だと思いましたが、うまくいきません。これがこれほど難しいことは本当に困惑します。
Dan

私はこれをテストしましたが、2つは正解です。セルのスタイルにだまされました。
jGroot 2018年

@jGroot-これはまさに、機能を持たないスタイルだけが欲しかったものです。
Raj Rajeshwar Singh Rathore

-1

ここで最も簡単な方法

  • 列全体を強調表示します
  • 「挿入」をクリックします
  • 「ハイパーリンク」をクリックします
  • 「このドキュメントに配置」をクリックします
  • OKをクリック
  • それで全部です

リンクがドキュメント内のものへのリンクでない限り、これは機能しません。
エリカ

質問の文言が不十分であることに私は同意しますが、意図されたターゲットは明らかにテキスト自体のターゲットです。
Jason K.

-3

Excel 2010の最も簡単な方法:URLテキストのある列を選択し、[ホーム]タブから[ハイパーリンクスタイル]を選択します。列のすべてのURLがハイパーリンクになりました。

また、URLテキストの最後にある各セルをダブルクリックして、空白を追加するか、単に入力するだけでもハイパーリンクが生成されます。MS OutlookのメールでURLリンクを作成する方法と同様です。


4
それらはハイパーリンクではなく、ハイパーリンクのよう見えます。それはただのスタイリングです。
エリカ

-5

これを行うには非常に簡単な方法があります。ハイパーリンクを1つ作成し、フォーマットペインタを使用してフォーマットをコピーします。すべてのアイテムにハイパーリンクを作成します。


8
これは機能せず、フォーマットをコピーするだけなので、ハイパーリンクのように見えます。
reergymerej 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.