Excel には、実際のリンクの代わりにテキストを表示するリンクの列があります。
実際にリンクが必要なのですが、リンクが表示されるように列全体を一括変換する方法はありますか? そうでない場合は、各リンクをクリックしてブラウザで開き、アドレスをコピーして貼り付ける必要があります...
また、Excel 2008 for Mac を使用しているため、マクロを実行できないようです...
答え1
短い答え:VBA なしではこれを自動化することはできません。
マニュアル
これは Windows 7 コンピュータの場合です。ショートカットを対応する Mac のショートカットに置き換えるだけです。
- ハイパーリンクのあるセルを強調表示します。
- CTRL+を押しますK。これにより、ハイパーリンク ダイアログ ボックスが開きます (下の画像を参照)。ダイアログ ボックスが開くと、カーソルがすでにアドレス フィールドにあることがわかります。
- CTRL+ を押すAと URL 全体が強調表示されます。
- CTRL+ を押しCてコピーします。
- ESCまたはを押しEnterてハイパーリンク ダイアログ ボックスを閉じます。
- CTRL+経由で URL をどこかに貼り付けますV。
VBA
以下に、VBA を使用できる人向けのソリューションを示します。
次のコードを使用して VBA モジュールを作成します。
Public Function GetURL(c As Range) As String
On Error Resume Next
GetURL = c.Hyperlinks(1).Address
End Function
使用するには、任意のセルに以下を入力します。
=GetURL(A1)
A1 にはハイパーリンクが含まれます。
機能の動作:
答え2
これは力ずくの方法のように聞こえるかもしれませんが、私が思いついた最善の方法です。(1 時間前に私自身が同じ疑問を抱いていたときにこのページを発見しました... 一日中探すこともできますが、実際にやってみて終わらせた方が簡単な場合もあります。)
1) ハイパーリンクを含むセルだけをコピーして、新しいスプレッドシートに貼り付けます。
2) スプレッドシートをエクスポートし、「ファイル タイプの変更」をクリックし、「別のファイル タイプとして保存」を選択して、Web ページ (HTML ファイルとも呼ばれます) として保存します。
3) ブラウザで Web ページを開き、ソースを表示します。
4) ソースをコピーしてテキストエディターに貼り付けます。
5) テキスト エディターの検索/置換機能を使用して、各ハイパーリンクの先頭と末尾のテキストを削除します。(つまり、上記のテキストを何もない「」に置き換えます)。このテキストは各ハイパーリンクで同一である必要があります。
6) これで、ハイパーリンクのみを含むテキスト ファイルが作成されます。必要に応じてコピーして元のスプレッドシートに貼り付けるか、好きな場所で使用してください。
実際には HTM の別のファイルにエクスポートできることを記述するように編集しました。ファイルを閉じて、Excel で再度開くと、問題は解決します。=Hyperlink 式はなくなり、リンクは通常のリンクに変換されます。この方法により、何時間も節約でき、非常に簡単で、スクリプトや式、VBA、マクロを扱う必要もありませんでした。
答え3
私は Mac を使用していますが、これがうまくいきました。変換する必要がある列を強調表示し、[挿入] メニューで [ハイパーリンク] を開きます。表示ボックスに表示されるテキストをすべて削除します。表示テキストがセル間で異なる場合は、[複数のセルが選択されています] と表示されます。[OK] をクリックすると、ワークシートにはリンクのみが表示されます。列全体ではなく個々のセルを変換する必要がある場合は、変換する必要があるすべてのセルを強調表示し、右クリックして [ハイパーリンクの編集] を選択し、同じ手順に従って表示ボックスのテキストを削除します。
答え4
この質問が Excel で出されてから数年経ちますが、私の会社の誰かがこの=GetURL(cell)
関数をグローバル XLAM ファイルに追加したので、私はそれが基本 Excel の一部だと思っていました。これが VBA です...
Public Function GetURL(cell As Range, Optional default_value As Variant) As Variant
Dim output As Variant
If (cell.Range("A1").Hyperlinks.Count <> 1) Then
output = default_value
Else
output = cell.Range("A1").Hyperlinks(1).Address
End If
GetURL = output
End Function