Steveには、www.example.comなどのWebサイトアドレスを含む一連のセル(A1:A10)があります。彼は、マクロ内で、これらの各アドレスをブラウザーの個別のブラウザータブで一度に開くことができるかどうか疑問に思います。

このタスクに取り組む方法はいくつかあり、どちらを選択するかは、ワークシートのデータの性質に大きく依存します。セルにアクティブなハイパーリンク(クリックするとアドレスがブラウザで開かれるハイパーリンク)が含まれている場合は、かなり単純なマクロを使用できます。

Sub FollowHyperlinks1()

Dim MyRange As Range     Dim hl As Hyperlink

On Error Resume Next     Set MyRange = Range("A1:A10")

For Each hl In MyRange.Hyperlinks         hl.Follow     Next hl End Sub

マクロは、A1:A10の範囲内のすべてのハイパーリンクを確認し、Followメソッドを使用してデフォルトのブラウザーで各ハイパーリンクを開きます。

オペレーティングシステムがExcelからブラウザに情報を転送する方法があるため、マクロを実行する前にブラウザを開いておくことをお勧めします。これは、テストで、実際にはブラウザの2つのインスタンスが開かれ、一部のアドレスが1つのインスタンスで開かれ、いくつかのアドレスが他のインスタンスで開かれる可能性があることがわかったためです。

これは明らかに、ブラウザの最初のインスタンスを開くのが遅れたために発生します。マクロが実行される前にブラウザが開いている場合、遅延はなく、各アドレスは同じブラウザインスタンスの異なるタブで開きます。

ワークシート内のアドレスがアクティブなハイパーリンクではない可能性がある場合は、その範囲にHyperlinksコレクションを使用することに頼ることはできません。

代わりに、次の範囲の各セルの値を確認する必要があります。

Sub FollowHyperlinks2()

Dim MyRange As Range     Dim cell As Range     Dim sTemp As String

On Error Resume Next     Set MyRange = Range("A1:A10")

For Each cell In MyRange         sTemp = cell.Value         ThisWorkbook.FollowHyperlink Address:=sTemp     Next cell End Sub

このアプローチでは、FollowHyperlinkメソッドを使用して、sTemp変数にアドレスをロードします。この場合、セルの内容がアクティブなハイパーリンクであるかどうかは関係ありません。コードはまだブラウザでそれらを開こうとします。

最後に、データに完全修飾アドレスが含まれていない可能性がある場合でも、別のアプローチを使用する必要があります。たとえば、スティーブはワークシートにwww.example.comなどのアドレスがあると述べましたが、そのようなアドレスはこれまでの例では機能しません。データの先頭にhttp://(またはhttps://などのバリアント)がない場合、コードはブラウザーでアドレスを開きません。あなたのデータにはこの特異性があるので、マクロへのわずかな変更が順番にあります:

Sub FollowHyperlinks3()

Dim MyRange As Range     Dim cell As Range     Dim sTemp As String

On Error Resume Next     Set MyRange = Range("A1:A10")

For Each cell In MyRange         sTemp = cell.Value         If InStr(sTemp, "://") = 0 Then             sTemp = "http://" & sTemp         End If         ThisWorkbook.FollowHyperlink Address:=sTemp     Next cell End Sub

この例では、sTempの内容を調べて、文字「://」が含まれているかどうかを確認します。そうでない場合は、プレフィックスhttp://がセルの内容に追加され、ExcelはFollowHyperlinkメソッドを使用して変更されたアドレスを開こうとします。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(11414)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。

Excelの古いメニューインターフェイス用のこのヒントのバージョンは、 linkブラウザでサイトを開くにあります。