Excelに列があり、そこにすべてのWebサイトのURL値があります。私の質問は、URLの値をアクティブリンクに変えたいということです。その列には、すべてのセルに異なるURLを持つ約200のエントリがあります。マクロを書かずにすべてのセルにアクティブなハイパーリンクを作成できる方法はありますか。
マクロを作成したくない場合や、追加の列を気にしないのであれば、URLの列の横に新しい列を作成するだけです。
新しい列に式=HYPERLINK(A1)
を入力します(A1を任意の興味のあるセルに置き換えます)。次に、残りの200個のエントリの下に式をコピーします。
注: セルA1に255文字より長い文字列が含まれている場合、この解決策は機能しません。 #VALUE!
エラーになります
このようにしてマクロを作成します。
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を再起動する必要があります。完了しました。
これが私が見つけた方法です。 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でも機能します。
わかりました、これは手っ取り早い解決策ですが、ExcelにURLの列をハイパーリンクとしてまとめて評価させる方法を理解することはできません。
="=hyperlink(""" & A1 & """)"
=
を見つけて=
に置き換えます(どういうわけかセルの再評価を強制します)。ハイパーリンクスタイルだけではクリック可能なリンクに変換されず、[ハイパーリンクの挿入]ダイアログではテキストをセルの束のアドレスとして一括して使用することはできません。それはさておき、 F2 そして Enter すべてのセルを介してそれを行うだろうが、それは多くのセルにとって面倒です。
かなり短いリストのためのとても簡単な方法:
あなたはあなたのリンクを持っています;)
このメソッドはハイパーリンク機能を使って私のために働きます:
=HYPERLINK("http://"&B10,B10)
B10
はテキストバージョンのURLを含むセルです(この例では)。
ハイパーリンクを持つ追加の列を追加する がオプションではない場合、代わりに=hyperlink("originalCellContent")
を取得するために外部エディタを使用してハイパーリンクを=hyperlink("
と")
で囲むこともできます。
Notepad ++をお持ちの場合、これはこの操作を半自動的に実行するためのレシピです。
=hyperlink("
と入力します。これにより、各エントリの先頭に=hyperlink("
が追加されます。$
(行末)を"\)
に置き換えます。これは、各行の終わりに閉じ引用符と閉じ括弧(正規表現が有効になっているときは\
でエスケープする必要がある)を追加します。Windows上のExcel 2007では、これらの手順が最も簡単だとわかりました。
私はExcelがこれを自動的に行わなかったことにショックを与えたので、他の人に役立つことを願う私の解決策はここにある。
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>
ステップ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>
これを試して:
= HYPERLINK( "mailto:"&A1、A1)
A1をあなたの電子メールアドレスセルのテキストに置き換えてください。
私にとっては、テキスト形式のURLを含む列全体を別のアプリケーション(Evernoteなど)にコピーし、そこに貼り付けられたときにリンクになったので、それらをExcelにコピーし直しました。
ここで唯一のことは、コピーしたデータが残りの列と揃っていることを確認する必要があるということです。
=HYPERLINK(<your_cell>,<your_cell>)
という式を隣接するセルに挿入して、一番下までドラッグすることができます。これにより、すべてのリンクを含む列が表示されます。これで、ヘッダをクリックして右クリックし、Hide
を選択して元の列を選択できます。
私はホットリンクしたい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
等.
乾杯
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をロードし、コピーし、そしてエクセルに貼り付けた、そしてリンクはアクティブだった。
コードをありがとうCassiopeia。私は彼のコードをローカルアドレスで動作するように変更し、彼の条件を少し変更しました。以下の条件を削除しました。
http:/
をfile:///
に変更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
ハイパーリンクにローカルの場所へのリンクとして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
テキストの内容を新しい列にコピーして、
=HYPERLINK("http://"&B10,B10)
元のコラムに。次に、列に$
を使用して、次のようになります。
=HYPERLINK("http://"&$B10,$B10)
それが、Windows 7上のExcel 2010で動作する唯一の方法です。式をコピーすることができます。