Excel:ハイパーリンクのある列を変換してリンクだけを表示する
Excelでは、私は実際のリンクの代わりにテキストを表示するリンクの列を持っています。
実際にはリンクが必要なのですが、リンクが表示されるように列全体を一括変換する方法はありますか?そうしないと、それぞれのリンクをクリックしてブラウザで開いて、アドレスをコピー&ペーストしなければなりません…。
また、私はMac用のExcel 2008を使用しているので、マクロはできないようです…
Excelでは、私は実際のリンクの代わりにテキストを表示するリンクの列を持っています。
実際にはリンクが必要なのですが、リンクが表示されるように列全体を一括変換する方法はありますか?そうしないと、それぞれのリンクをクリックしてブラウザで開いて、アドレスをコピー&ペーストしなければなりません…。
また、私はMac用のExcel 2008を使用しているので、マクロはできないようです…
**VBAなしでは自動化できません。
これはWindows 7コンピュータ上でのものです。
Public Function GetURL(c As Range) As String
On Error Resume Next
GetURL = c.Hyperlinks(1).Address
End Function
VBAが使える人のための解決策を紹介します。
以下のコードでVBAモジュールを作成します。
=GetURL(A1)
使用するには、任意のセルに以下を入力します。
ここでA1にはハイパーリンクが含まれています。
A1 にはハイパーリンクが含まれます。
0x1& 0x1&
ブルートフォースの方法のように聞こえるかもしれませんが、これが私が思いついたベストな方法です。(1時間前に自分自身も同じ質問をしたときにこのページを発見しました…一日中探してもいいのですが、時にはそれをやって終わりにしたほうが簡単なこともあります。)
1) ハイパーリンクを含むセルだけをコピーして新しいスプレッドシートに貼り付けます。
2) スプレッドシートをエクスポートし、「ファイルの種類を変更」をクリックし、「別のファイルの種類で保存」を選択して、Webページ(別名HTMLファイル)として保存します。
3) ブラウザでウェブページを開き、ソースを表示します。
4) ソースをコピーしてテキストエディタに貼り付けます。
5) テキストエディタの検索/置換機能を使って、各ハイパーリンクの先頭と末尾のテキストを削除します。(言い換えれば、このテキストを何もないものに置き換えます: “”) このテキストは、各ハイパーリンクに対して同一である必要があることに注意してください。
6) これで、ハイパーリンク以外は何もないテキストファイルができました。必要に応じてコピーして元のスプレッドシートに貼り付けてください。
実際にHTMである別のファイルにエクスポートできるということを説明するために編集しました。ファイルを閉じてExcelで再度開くと問題が解決します。=ハイパーリンクの式が消えて、通常のリンクに変換されています。この方法で何時間も節約できましたし、スクリプトや数式、VBAやマクロを扱う必要がなく、デッド・シンプルでした。
私はMacを使用していますが、これは私の場合はうまくいきました: 変換する必要がある列をハイライトし、挿入メニューで「ハイパーリンク」を開きます。表示ボックスに表示されているテキストを削除します。表示テキストがセル間で異なる場合は、「[複数のセルが選択されています]」と表示されます。OKをクリックすると、リンクのみがワークシートに表示されます。列全体ではなく、個々のセルを変換する必要がある場合は、変換する必要があるすべてのセルをハイライトして右クリックし、「ハイパーリンクの編集」を選択し、同じ手順で表示ボックスのテキストを削除します。
この質問が出てから数年の間に、Excelに=GetURL(cell)
関数が追加されたので、独自のVBAを落とさなくてもできるようになりました。