- ベストアンサー
ExcelからPDF文書の特定ページにリンクを貼る方法について
エクセルで作成した表のセルから PDF文書にリンクを張りたいと考えています。 そのとき、必要なページを指定してジャンプさせられたら、 と思うのですが・・・。どうしたらいいのか分かりません。 このように指定したページ(例えば50頁中の23頁目)に リンクを張ることは可能でしょうか。 (PDF文書の先頭ページにリンクを張ることはできました) 初心者でよく分からないので、 すみませんが詳しい方、教えてください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ご確認の2,3は、とくに問題はないと思います。 1につきましては、 Acrobat Reader のタイトルバー左端(アイコンの 右)の表示がそうなっていれば問題ないと思うのですが……。 とりあえず、 SendKeys "^{PGDN}" の部分を Sendkeys "^{PGDN}", True に書き換えてみてください。 あと、これでも効かないようでしたら、次の内容と差し替えてみてくだ さい。 ' Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) AppActivate "Adobe Reader" SendKeys "+^{n}", True '●1 SendKeys Selection.Offset(0, 1).Value, True '●2 SendKeys "~" '●3 End Sub ' ●ページにジャンプするショートカットキーのキー操作を意味します。 1.[Ctrl]と[Shift]を押しながら[N]を入力 → ページ指定ダイアログの表示。 2.ページ番号の入力 3.[Enter]のクリック これらの操作が Adobe Reader で有効ならOKなはずなのですが。
その他の回答 (2)
- misatoanna
- ベストアンサー率58% (528/896)
> セルにPDFファイルのハイパーリンクを貼り、その表示内容を > "5"に変更する、という意味でしょうか。 > あるいはリンク先アドレスに"5"を追加するという意味でしょうか。 ハイパーリンクの表示内容を 5 にしても、単純に「リンクの張られてい るセルに 5 を入力」しても同じく動きます。 あと、 AppActivate "Adobe Reader" の部分ですが、ここでは、PDF 表示用のソフトとして Adobe Reader を使用しているという前提で記述 しました。 ここでよく考えると、リンクを張ったセルにはリンク先ファイル名など の表示をしておくことも必要でしょうから、リンクを張ったセルの右隣 セルに 5 を入力し、モジュールも次のように変更したほうがよいと思い ます。 For i = 1 To Selection.Value - 1 ↓ For i = 1 To Selection.Offset(, 1).Value - 1
補足
misatoanna さん 再びアドバイスいただき、ありがとうございます。 何度も試してみたのですが、やはりPDF文書の冒頭にジャンプしてしまいます。。 そこですみませんが、確認させてください。 1.PDFの表示にはAdobe Readerを利用していますが、バージョン(ちなみに私のPCでは7.0です)を指示する必要はないでしょうか。 2.コピペする箇所について、冒頭の符号(「’」)や文字下げ(全体に半角で2字分ほど下がっているようです)もそのままコピペしてよいのでしょうか。 3.コマンドの入力にはMicrosoft Visual Basicの画面が立ち上がります。入力後、保存せずに右上の「閉じるボタン」で終了させてしまっていいのでしょうyか。 特にエラーメッセージなどは表示されません。 何かエクセルの設定などの問題で うまく動作しない要因が何か考えられますでしょうか。 仕事上、何とかものにしたい機能ですので、 お手数をかけますがご回答下さると助かります。 どうぞよろしくお願いします。
- misatoanna
- ベストアンサー率58% (528/896)
オフィスソフトどうしと異なりハイパーリンクのブックマーク機能が 使えませんので、次のようにマクロを併用されたらいかがでしょうか。 PDFの5ページ目を開きたい場合 1.PDFファイルにリンクを張ってあるセルに 5 を入力します。 2.シートタブを右クリックして「コードの表示」を選択します。 3.表示されるウィンドウには、以下をコピペして閉じます。 ' Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Dim i AppActivate "Adobe Reader" For i = 1 To Selection.Value - 1 SendKeys "^{PGDN}" Next End Sub ここでリンクセルをクリックしてみてください。
お礼
misatoanna さん ありがとうございます。 さっそく試してみましたが、うまくゆきません (やはり1頁目が開いてしまいます)。 アドバイス中の1.についてですが、 セルにPDFファイルのハイパーリンクを貼り、 その表示内容を「5」に変更する、という意味でしょうか。 あるいはリンク先のアドレスに「5」を追加するという意味でしょうか。 ご教示いただけると幸いです。 よろしくお願いします。
お礼
misatoanna さん 後者の方法で指定ページにリンクを貼ることができました (前者ではやはりうまくジャンプできませんでした)。 本当にありがとうございました。 数年来もやもやしていた問題がいっきょに解決されました。 エクセルのマクロって便利ですね。 これまで気にかけたこともありませんでしたが これを機にすこしずつでも勉強してみようと思いました。 それにしても、こんなに親切に 私の課題に付き合ってくださり、本当にありがとうございます。 心より感謝いたします。