web-dev-qa-db-ja.com

ExcelでテキストURLの列をアクティブなハイパーリンクに変換する方法を教えてください。

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

236
developer

マクロを作成したくない場合や、追加の列を気にしないのであれば、URLの列の横に新しい列を作成するだけです。

新しい列に式=HYPERLINK(A1)を入力します(A1を任意の興味のあるセルに置き換えます)。次に、残りの200個のエントリの下に式をコピーします。

注: セルA1に255文字より長い文字列が含まれている場合、この解決策は機能しません。 #VALUE!エラーになります

289
hawbsl

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

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に戻る]をクリックします。

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

_ note _ 列全体を選択しないでください。クリック可能なリンクに変更したいセルのみを選択してください。そうしないと、最終的に見過ごされ、Excelを再起動する必要があります。完了しました。

81
Steve Keenan

これが私が見つけた方法です。 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でも機能します。

23
Marty

わかりました、これは手っ取り早い解決策ですが、ExcelにURLの列をハイパーリンクとしてまとめて評価させる方法を理解することはできません。

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

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

18
Indolent Coder

かなり短いリストのためのとても簡単な方法:

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

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

16
user3210679

このメソッドはハイパーリンク機能を使って私のために働きます:

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

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

6
Wasabihound

ハイパーリンクを持つ追加の列を追加する がオプションではない場合、代わりに=hyperlink("originalCellContent")を取得するために外部エディタを使用してハイパーリンクを=hyperlink("")で囲むこともできます。

Notepad ++をお持ちの場合、これはこの操作を半自動的に実行するためのレシピです。

  • アドレスの列をNotepad ++にコピーします
  • 保つ ALT - SHIFT を押しながらカーソルを左上隅から右下隅まで広げて、=hyperlink("と入力します。これにより、各エントリの先頭に=hyperlink("が追加されます。
  • 「置換」メニューを開く(Ctrl - H)、正規表現を有効にする(ALT - G$(行末)を"\)に置き換えます。これは、各行の終わりに閉じ引用符と閉じ括弧(正規表現が有効になっているときは\でエスケープする必要がある)を追加します。
  • データをExcelに貼り付けます。実際には、データをコピーして、データを配置したい列の最初のセルを選択するだけです。
5
Antonio

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

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

私は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ではなく、下のページを使用して、最初に[Run code snippet]をクリックしてから、その上に列を貼り付けることができます。

<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
Ebrahim Byagowi

これを試して:

= HYPERLINK( "mailto:"&A1、A1)

A1をあなたの電子メールアドレスセルのテキストに置き換えてください。

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

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

2
AbuMariam

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

1
th3an0maly

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

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

= "= HYPERLINK("& "" "http" "&" ":" ""& ""& "&"& "" // // stackoverflow.com/questions/"&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を削除しました。

私はホットリンクされた質問番号を1列にまとめました。

2595692

135171

等.

乾杯

1
RKO

URLをHTMLテーブルに入れ、HTMLページをブラウザにロードし、そのページの内容をコピーして、Excelに貼り付けます。この時点で、URLはアクティブリンクとして保存されています。

解決策は http://answers.Microsoft.com/ja-jp/mac/forum/macoffice2008-macexcel/how-to-copy-and-paste-to-mac-Excel-2008-a-list-に提案されています/ c5fa2890-acf5-461d-adb5-32480855e11e (Jim Gordon Mac MVP)による[ http://answers.Microsoft.com/ja-jp/profile/75a2b744-a259-49bb-8eb1-7db61dae9e78]

私はそれがうまくいったことがわかりました。

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

https://Twitter.com/keeseter/status/578350771235872768/photo/1https://instagram.com/p/ys5ASPCDEV/https://igcdn-photos-ga.akamaihd .net/hphotos-ak-xfa1/t51.2885-15/10881854_329617847240910_1814142151_n.jpghttps://Twitter.com/ranadotson/status/539485028712189952/photo/1https://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をロードし、コピーし、そしてエクセルに貼り付けた、そしてリンクはアクティブだった。

1
Michael Osofsky

コードをありがとうCassiopeia。私は彼のコードをローカルアドレスで動作するように変更し、彼の条件を少し変更しました。以下の条件を削除しました。

  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
1
Junaid

ハイパーリンクにローカルの場所へのリンクとして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
Cassiopeia

Excel 2016を利用している人は、列を強調表示してからHyperlinkボックスのHomeリボンにあるStylesタブをクリックするだけです。

enter image description here

編集:残念ながら、これはセルスタイルを更新するだけで関数は更新しません。

1
jGroot

テキストの内容を新しい列にコピーして、

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

元のコラムに。次に、列に$を使用して、次のようになります。

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

それが、Windows 7上のExcel 2010で動作する唯一の方法です。式をコピーすることができます。

0
vanesaqy