アプリ版:「スタンプのみでお礼する」機能のリリースについて

PDFにまとめられた200ページから1000ページの古い文書(30冊以上あります)を、
エクセルで作成した簡易データベース表を使って、特定の文書の、特定のページを開かせたいと考えています。

 過去にも同じような事を相談された方がおり、
http://oshiete.goo.ne.jp/qa/3009821.html
 その質問の答えを参考に作成してみましたが、PDFファイルにアクセスし、アドビリーダーが
起動した際に、うまくアクティブになる場合とならない場合があるようで、うまくアクティブになった場合には、きちんと特定のページまで開くのですが、うまくアクティブ化しなかった場合は
そのPDFファイルが開き、最初のページが開いたかたちで止まってしまいます。

 止まってしまった場合は、エクセルのエラーとなり、
-------------------------------------------------------------------------------
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
=>AppActivate "Adobe Reader"
  SendKeys "+^{n}", True
  SendKeys Selection.Offset(0, 1).Value, True
  SendKeys "~"
End Sub
-------------------------------------------------------------------------------
 上記に示す、「AppActivate "Adobe Reader"」のところが黄色く表示され
ここがダメだと表示されます。

 今回困ったのが、この症状が出て、「エラーになる」場合と「エラーにならない」場合があり
その違いが判らないことです。

 エクセルは2003と2010の両方で、うまくいく場合とうまくいかない場合があります。
アドビリーダーはXIです。

 解決方法がおわかりになるかたがいましたら教えていただけないでしょうか?

A 回答 (2件)

使用するPDFブラウザ(ビューワ)の機能次第。


ページ指定して開くことができるのであれば、その機能をハイパーリンクに記述すればよい。
https://helpx.adobe.com/jp/acrobat/kb/226119.html
を参考にするとよいだろう。

ビューワを起動するバッチファイルを作り、そこに上記のリンクにある方法でPDFファイルを開くようにし、そのバッチファイルにハイパーリンクする。
アドビリーダーの例:
start AcroRd32.exe /a "page=4" file.pdf
あるいはHTMLファイルを作って同様にそのHTMLファイルにハイパーリンクを張る。
※単に#page=4を追加してもExcelからは4ページ目を直接開けないのだ。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
今回、ブラウザを使わずに、エクセルとアドビリーダーのみでデータベースの構築と、今後の追加がかんたんにできるものを目指しています。
 紹介されたアドビのヘルプだと、ブラウザでのアドレスリンクになるように思います。
 同一PCのHDD内に、エクセルファイルとPDFが入っている前提で、ブラウザは使わずに、エクセルのワークシート内の記述とマクロで、PDFの所定のページを表示できないでしょうか?
 また、最初の質問になりますが、エクセルからアドビリーダーを起動し、必ずアクティブ化出来る方法というのはご存知ありませんでしょうか?

お礼日時:2015/09/27 13:22

アドビリーダー(Adobe Reader)のことをブラウザ(表示ソフト)と言うのだが・・・。


前の回答でAdobe Readerを使用する例を示している。

Windows系のOSを使っていないのであれば、HTMLを書いてそのHTMLファイルにハイパーリンクを張ればよい。

<html>
<head>
<meta http-equiv="refresh" content="0;url=file://file.pdf#page=4">
</head>
<body>
</body>
</html>

こんな感じだ。

Windows系のOSを使っているならバッチファイルの方がわかりやすいと思うのだが。
なにせ1行で済む。

・・・。
バッチファイルやHTMLファイルの作り方が分からないと言うことだろうか。

バッチファイルなら
メモ帳のようなテキストエディタに次の1行を貼り付け、

 start AcroRd32.exe /a "page=4" file.pdf

「file.pdf」の部分を実際に開きたいPDFファイルの名前に、
「"page=4"」の部分を開きたいページ数に修正して、
分かりやすく適切なファイル名で保存し、
保存したファイルの拡張子を「txt」から「bat」に変更するだけだ。
(batに変更した後に修正をしたいときはファイルを右クリックして「修正」)

HTMLファイルなら
メモ帳のようなテキストエディタに次の1行を貼り付け、
HTMLなら上記の7行を貼り付け
「file.pdf」の部分を実際に開きたいPDFファイルの名前に、
「#page=4」の部分を開きたいページ数に修正して、
分かりやすく適切なファイル名で保存し、
保存したファイルの拡張子を「txt」から「html」に変更するだけだ。

ExcelそのものではPDFファイルを開くことはできない。
また前の回答にコメントとして書いたが、Excelでは直接ページを指定して開くことはできない。
Adobe Readerやその他のブラウザ(ビューワ)が指定されたPDFを開くことになる。
そのため他の手段を使用するしかないのだ。
    • good
    • 0
この回答へのお礼

再回答ありがとうございます。
 ブラウザ=IEやファイヤーフォックスのコトと思っていました。
 
 今回の場合、「エクセルで作成された一覧表から、セルに記載されたファイル(PDF化された古い報告書)の○○ページに飛ばす」
と言うのを目的としています。

 上記のバッチファイル式やHTML式はエクセルに組み込んで動作させられるのでしょうか?
ちょっと試しては見ましたが、うまく動作してくれませんでした。

 出来れば、エクセルのマクロなどワークシートに共通の式を記載しておいて、各セルに年度の違う報告書ファイルの「ファイル名」と「ページ」を
ハイパーリンクとしてそれぞれ記載することで、一覧表のハイパーリンク入りのセルをクリックで、目的の「報告書PDF」の「目的のページ」を開きたいのです。

 この「一覧表エクセルファイル」と、「報告書PDF」を提出後は先方のPCに詳しくない人でも簡単に追記できるようにしておくのが目標なのですが
複数のバッチファイルを作成し、セルに埋め込むとができるのでしょうか?

お礼日時:2015/09/27 22:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています