[[20171108181542]] 『Webページ保存したシートの開き方』(のの) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Webページ保存したシートの開き方』(のの)

Webページで保存したhtmファイルの、3番目のシートを直接ブラウザで開きたいのですが、どうしても1番目のシートしか開きません。どのようにしたら良いでしょうか。

やりたいことは、別のメニューページから、シートを指定して開きたいのです。たとえば、AAAA.xlsxで作成した、AAAA.htm の中の3番目のシートを表示したい。

メニューページのソースで、a href="AAAA.files/sheet003.htm" と3番目のシートを直接指定しても、1番目のシートが開いてしまいます。

もちろん、そこから、3番目のシートのタブをクリックすれば3番目が表示されますが、それを直接開きたいのです。

試しに、保存した際に出来る「AAAA.files」フォルダに入っている、3番目のシートのファイル「sheet003.htm」をダブルクリックし直接ブラウザで開いても、なぜか1番目のシート表示になってしまいます。
当然、sheet001.htm〜sheet003.htmのファイルは別々の内容です。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


<a href="file://D:/test/AAA.files/sheet003.htm">test</a>
のような形式にしてみては?
セキュリティチェックの関係なのか、時間がかかりますが。

(γ) 2017/11/08(水) 20:37


ありがとうございます。
はい、やってみましたが。そのように記載しても、1番目のシートが表示されてしまうんです。

絶対パスでも、相対パスでも同様でした。

というよりも、AAA.filesフォルダのsheet003.htmを直接開いても1番目のシート表示になってしまうことが不思議です。

ファイルはsheet001.htm、sheet002.htm、sheet003.htmと別々にあっても、すべて1番目のシート(sheet001.htmに値する画面)が表示される仕様なのでしょうか?

sheet003.htmのソース内容を直接書き換えてでも、表示できる方法はないでしょうか?

(のの) 2017/11/08(水) 22:55


私もきちんとシート3が表示されることを確認したうえで
投稿しています。
環境も同じです。
(γ) 2017/11/08(水) 23:15

そうですよね。ありがとうございます。
何度やっても、ファイルを変えても、PCを変えても同じ状態でしたので。。。

何か違うことをやってしまっているのでしょうね。
ありがとうございました。
(のの) 2017/11/09(木) 01:31


 >sheet003.htmのソース内容を直接書き換えてでも、表示できる方法はないでしょうか? 

 こう云うのは、JavaScriptを知っている人なら直ぐ分かるんでしょうが、
 私は知らないので、簡単な実験をしてみました。

 htmファイルとして保存する時に、アクティブにしていたシートが表示されるようです。

 なので、保存する際に、Sheet3をアクティブにしておけばいいと思います。

 ※Sheet1をアクティブにして保存した後なら
 「Webページで保存したhtmファイル」(親の方)をメモ帳で開いてみると、ずーっと下の方に
 「最初に表示されるタブの定義」が書かれていますので、
  そこを直接書換えてから保存すればsheet3に行くようです。

            ここをsheet003.htmに書き換える
                                 ↓
 > <frame src="のの1.files/sheet001.htm" name="frSheet">

(半平太) 2017/11/09(木) 09:21


こんにちは。途切れ途切れしかコメントができず失礼します。
 
>別のメニューページから、シートを指定して開きたいのです
ということでしたので、"親の方"は使っていません。
 
質問者さん、別のメニューページ って何ですか?

(γ) 2017/11/09(木) 20:47


みなさま
ありがとうございます。
分かりやすい説明ができずにすみません。

ページ数が多いため、複数のExcelで作成しています。
なので、別にメニューのページを作り、リンクを貼ろうと考えています。
しかし同じエクセルのシートにしかハイパーリンクは貼れないため、フレームで分けたページにメニューフレームとメインのExcelから作成したページのフレームを入れようと考えました。
普通のhtmlファイルなら、メニューフレームからメインフレームに、<a href="XXX" target="〜で簡単に呼び出せるのですが、Excelから作ったhtmファイルは、上記の通りうまくいかない状態です。
最悪、半平太先生の言うように、htmの呼び出し先を書き換えたシート数分のhtmを用意して、それにリンク付けするしかないか、と考えてもいます。

もう少し、あれこれやってみます。
(のの) 2017/11/10(金) 01:00


 >別にメニューのページを作り、リンクを貼ろうと考えています。

 ブックとシートを指定してリンクしたい、ということなら
 次のようにすれば、Excelファイルのままで対応可能です。

 (1)
 メニューのシートには、

 A列          B列
 Book1.xlsm   Sheet1
 Book1.xlsm   Sheet2
 Book1.xlsm   Sheet3

 のように、
 ・A列は、通常どおり、そのブックへのハイパーリンクを設定します。
   (Hyperlink関数ではなく、"ハイパーリンクの挿入"から入るやつです)
 ・B列に、対象シート名を書きます。

 (2)
 メニューシートのシートモジュールに、
 以下のマクロを書きます。
 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
     Dim sheetName As String
     sheetName = Target.Range.Offset(0, 1).Value
     If Target.Address <> "" Then
         Application.Goto Workbooks(Target.Address).Worksheets(sheetName).Range("A1")
     End If
 End Sub  

 (3)
 こうしておいて、リンクをクリックすれば、マクロが同時に動いて
 指定したシートに飛びます。 
 もし、セル範囲の指定も必要なら、C列にセル範囲を書いておいて、
 上記マクロに手を入れるだけです。
(γ) 2017/11/10(金) 04:04

 ようやく、やりたいことが分かった気がします。

 「Sheet001.htm」とか、「Sheet002.htm」とかを直接指定したら、
 指定した通りのタブが選ばれて表示されるようにしたい」
 と言うことですよね?

 (初めから、そう書いてあったんでしょうが、理解できなかったです)

 「Sheet001.htm」とか、「Sheet002.htm」とかをそれぞれメモ帳で開くと、
 上から30行目辺りに下のような記述がありますので

 <!--
 function fnUpdateTabs()

 上段のタグの「--」を消去して上書きすればいいです。

 つまり
  ↓
 <!
 function fnUpdateTabs()

(半平太) 2017/11/10(金) 10:24


半平太先生。できました。
ありがとうございます。

説明がうまく出来ず遠回りして、皆様にご迷惑おかけしました。

ご尽力頂いた方々に感謝です。

ありがとうございました。
(のの) 2017/11/10(金) 23:37


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.