Excel内でHTMLファイルの特定のセクションへのハイパーリンクを作成するにはどうすればよいですか?


8

アンカーを含むHTMLファイルがあります。アンカー名を指定すると、ブラウザーを介して特定のセクションにアクセスできるため
file://<html_path>/<html_file>.html#<anchor_name>
、ブラウザーのアドレスボックスに書き込むと、ファイルが開いて正しいセクションにスクロールします。

HYPERLINKExcelの関数に同じリンクを配置すると、リンクはWebページを開き、#パーツをトリミングするだけで、指定されたセクションにスクロールしません。HYPERLINK関数にアンカーパーツのあるWebページへのリンクを配置すると、正しく機能しているように見えるため、のhttp://リンクは#トリミングされず、引き続き機能します。

Googleを検索すると、このフォーラムの投稿と、ハッシュは有効なファイル名文字ですが、オフィス内のファイル名では使用できないことを示すいくつかのKB記事が返されます。同じページには、これがExcel 2010で解決されたと記載されていますが、私は2010バージョンを使用していますが、明らかに問題があります。

これに対する回避策はありますか?私はすべての行をターゲットファイルの別のセクションにリンクするつもりで、1000行以上あるので、元のHTMLファイルを複数に分割するか、各セクションに個別のURLを生成して代わりにリンクするオプションは、ファイル。


現時点ではテストできないため、これを答えにすることはできませんが、「#」の代わりに「%23」を使用してエンコードをテストしましたか
HTDutchy

私はこれをチェックしたところ、動作していないようです。Excelが「指定されたファイルを開けません」というエラーメッセージを表示する
JohnoBoy

@terdon 'ポンド記号/キー'は、#キャラクターの有効な名前です。WikiPediaの記事を参照てください。フォーラムの投稿とそれにリンクされているKB記事でも同じ名前が使用されています
JohnoBoy

@JohnoBoy、そうです。正直申し訳ありません。編集内容を自由にロールバックしてください。
terdon

回答:


2

これを試して。行ごとに2つの列が必要です。最初の行には、各行のブックマークの名前が含まれます。2番目には、それ自体を指すハイパーリンクが含まれます。

多くの行に自己参照ハイパーリンクを挿入するには、次のようなマクロを実行します。

Sub AddHyperlinksPointingToOwnCell()

   For i = 1 To 100

   Range("A" & i).Select
   ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
       "Sheet1!A" & i, TextToDisplay:="Click Here!"

   ActiveCell.Offset(1, 0).Select

   Next i

End Sub

次に、ブラウザを正しい場所で開くためのサブが必要です。これを編集して、ファイルとブラウザのパスが正しいようにします。

Sub GoToBookmark()

    Dim ThisRow As Integer
    Dim ThisCol As Integer
    Dim BookmarkName As String

    ThisRow = ActiveCell.Row
    ThisCol = ActiveCell.Column
    BookmarkName = Cells(ThisRow, ThisCol - 1).Value
        'This is looking in the cell to the left for the bookmark name

    If BookmarkName = "" Then
        Exit Sub
    End If

    Shell "C:\Program Files\Internet Explorer\IEXPLORE.EXE " & _
        "C:\PathRoot\Folder\filename.html#" & BookmarkName & ", vbNormalFocus"

End Sub

最後に、リストを含むシートのWorksheet_FollowHyperlinkイベントを追加する必要があります。

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    Run ("GoToBookmark")
End Sub

うまくいけば、それでうまくいくでしょう!


私はこれを調べて報告します。ありがとう
JohnoBoy 2013年

@JohnoBoy-これでうまくいきましたか?
ジョニーUtahh 2015年

これはずっと前のことですが、ハイパーリンクを完全に諦めたと思います。
JohnoBoy 2015年

0

VBAコーディングを使用しない場合でも、Excel関数「ハイパーリンク」を使用できます。ここにそれを行うためのステップバイステップガイドがあります。

オンラインファイル:ステップ1:ファイル名を次のようにしましょう:http : //en.wikipedia.org/wiki/Intel_Core ステップ2:A1:A4にアンカー名を追加します
Core1 :Duo
Core_Solo
Core_2_Duo
Core_i7
ステップ3:セルB2にこれを入力します:

=HYPERLINK("http://en.wikipedia.org/wiki/Core_i3#"&A2,"A2")  

ステップ4:クリック&ドラッグは、細胞の残りの部分に適用するために
働いてテスト済み!


1
残念ながらカマラム、元のポスターはC:ドライブでローカルにホストされているファイルに対してこれを行うことを目指していました。これをもう一度試しても、file://C:/これは機能しません。それがうまくいけばずっと簡単になるので残念です!
Andi Mohr 2013年

また、これはWebでも機能しません
Gerrat

-1

ここであなたの質問をよく理解している場合は、 回避策がありますSource = Here回避策この問題を回避するには、次のいずれかの方法を使用します。方法1

ポンド記号を含まない名前でファイルの名前を変更してから、ハイパーリンクを編集または再作成します。

Windowsでファイルの名前を変更する方法の詳細については、Windowsの印刷マニュアルまたはオンラインヘルプを参照してください。

ハイパーリンクを編集するには、次の手順に従います。

Office 2003以前のバージョンのOfficeの場合:問題のハイパーリンクを含むセルを右クリックします。表示されるショートカットメニューで、[ハイパーリンク]をポイントし、[ハイパーリンクの編集]をクリックします。[ファイルまたはWebページ名を入力してください]ボックスに、リンク先のファイルの名前を入力します。ファイルの名前がわからない場合は、[ファイル]をクリックしてファイルを参照します。OKをクリックします。

Office 2007およびOffice 2010プログラムの場合:問題のハイパーリンクを含むセルを右クリックし、[ハイパーリンクの編集]をポイントします。[アドレス]ボックスに、リンク先のファイルの名前を入力します。ファイルの名前がわからない場合は、[探す場所]行の検索ツールを使用してファイルを探します。ファイルを選択し、[OK]をクリックします。方法2

[ハイパーリンクとして貼り付け]コマンドを使用します。

Office 2003以前のバージョンの場合:リンク先のドキュメント(名前に#記号が含まれている)を開きます。リンクするセルをコピーします。ドキュメントの[編集]メニューで、[ハイパーリンクとして貼り付け]をクリックします。

Office 2007およびOffice 2010プログラムの場合:リンクしようとしているドキュメントを開きます。これは、名前に#記号が含まれているドキュメントです。リンクするセルをコピーします。ドキュメントで、ハイパーリンクを表示するセルをクリックします。[ホーム]タブで、[クリップボード]グループの[貼り付け]の下にある矢印をクリックし、[ハイパーリンクとして貼り付け]をクリックします

VBAコードを使用している場合、この行は私がテストした助けになるかもしれません。それはChromeとFirefoxの両方で動作しています
ActiveSheet.Hyperlinks.Add Anchor:= Selection、Address:= "C:\ path \ to \ your \ file.htm" 、SubAddress:= "nameOfYourAnchor"、TextToDisplay:= "表示するテキスト")

ここでnameOfYourAnchor w / o# Symたとえば、リンクがC:/ Users / [User] / Desktop / Intel Core-Wikipediaの場合、無料のencyclopedia.htm#Core_i3コードは(ActiveSheet.Hyperlinks.Add Anchor:=選択、アドレス:= "C:/ Users / User / Desktop / Intel Core-Wikipedia、free encyclopedia.htm"、SubAddress:= "Core_i3"、TextToDisplay:= "text to display"
これがお役に立てば幸いです。


問題は、ファイルの名前にポンド記号が含まれていないことです。ポンド記号を使用して、ファイル内の特定のセクションにリンクします
JohnoBoy 2013年

2
最後の2つの段落をご覧ください。
カマラム2013年

@kamalam、表面的には、これは非常にきちんとしたソリューションです。しかし、このコードを機能させることができませんか?あなたのために働く完全なサブを投稿できますか?
Andi Mohr 2013年

-1

以下は、通常、Excel 2007がインストールされたWindows 7で機能します。ファイルはスプレッドシートと同じ場所に配置されます。セルの内容:

= HYPERLINK( "dump_faults_current_leg_bite.htm#BiteRec_000"、 "BITE record 1/35")

このリンクで問題が発生しているデスクトップPCがいくつかありますが、「指定されたファイルを開けません」というエラーが発生します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.