

エクセルで表を作成しています。そこに他のPDF文書を貼り付けたいと思います。どのようにしたら良いでしょうか?
問題点
1 PDFファイルは画像のように貼るのではなくハイパーリンクでつけたい
2 このPDFファイル自体がときどき更新されるため、PDFファイル名を~20061201.pdfのように、いつPDFファイルが更新されたかわかるようにしたい
3 エクセル自体はあまり更新しない予定なので、ハイパーリンクでつけたPDFファイルが常に最新のものにしたい
以上のような状態です。現在はふつうにPDFファイルをハイパーリンクでつけていますが、このままではPDFファイルを更新した時、すべて同じように更新しなければならないので困ってます。ファイルではなくフォルダに日付を入れることも検討したのですが、フォルダ名を変更するとハイパーリンクでは検索されなくなってしまいますよね?
お力添えお願いします。
No.1ベストアンサー
- 回答日時:
マクロ(VBA)を使うしかないと思います。
----以下ソース----
Private Function 日付チェック(path) As Long
Dim fname As String
Dim d As Long
Dim last As Long
日付チェック = -1
ChDir ActiveWorkbook.path
fname = Dir(path)
Do While (fname <> "")
If fname Like "*########.pdf" Then
d = Val(Mid(fname, Len(fname) - 11, 8))
If d > last Then last = d
End If
fname = Dir()
Loop
日付チェック = last
End Function
Sub リンク更新()
Dim l As Hyperlink
Dim d As Long
For Each l In ActiveSheet.Hyperlinks
If l.Address Like "*########.pdf" Then
d = 日付チェック(Left(l.Address, Len(l.Address) - 12) & "*.pdf")
If d <> -1 Then
l.Address = Left(l.Address, Len(l.Address) - 12) & Trim(Str(d)) & ".pdf"
l.Range = Left(l.Address, Len(l.Address) - 12) & Trim(Str(d)) & ".pdf"
End If
End If
Next
End Sub
----以上ソース----
先に「~20061201.pdf」へのリンクを作って下さい。
「リンク更新」を実行するとアクティブシートのリンクを更新します。
「~20061201.pdf」と同じフォルダにある新しい日付のファイルを探し、リンクを書き換えます。
念のためバックアップを取ってから、お試しください。
丁寧な回答ありがとうございます。マクロで対応するしかないのですね。未知の領域ですがためしてみたいと思います。ありがとうございました。
No.2
- 回答日時:
こんばんは。
私も考えてみました。状況がはっきりしていないので、ある程度、こちらできめてしまいました。ファイル名自体は、何にしようが、そのブックの下位フォルダーのどこに入れようが別に問題はありません。そのブックの上位フォルダは、現在は探しません。
もっとも新しいpdfファイルを探すマクロです。
ファイルの日付は、ハイパーリンクのポップアップに入れました。ファイル名とは別です。
ただし、あまり、上のフォルダでファイルが多いと時間が掛かります。
ハイパーリンクは、一つしかないことを条件にして、それが書き換わります。
なお、Excel 2000 以下では、このマクロは、やってみないと分からないです。また、IE は、5.0 以上を条件としています。
'--------------------------------------------------
Sub NewHyperLinkChanging()
'ハイパーリンクを最新のファイルに書き換えるマクロ
Dim r As Range
Dim d As Date
Dim Fname As String
Dim f As Variant
Dim Disp As String
'ハイパーリンクの一つに対して、最新のファイルに書き換えられる
'日付は、ヒントに出てくる
If ActiveSheet.Hyperlinks.Count = 0 Then
MsgBox "Hyperlink がありませんので、終了します。": Exit Sub
Else
Set r = ActiveSheet.Hyperlinks(1).Range
End If
With Application.FileSearch
.NewSearch
.LookIn = ThisWorkbook.Path '親パス
.SearchSubFolders = True
.Filename = "*.pdf" 'なるべく頭出しを限定したほうがよい
'特徴のある語でもよい。例06*.pdf
.MatchTextExactly = False
.FileType = msoFileTypeAllFiles
If .Execute() > 0 Then
For Each f In .FoundFiles
If FileDateTime(f) > d Then
d = FileDateTime(f)
Fname = f
End If
Next f
Else
MsgBox "検索条件を満たすファイルはフォルダにはありません。"
Set r = Nothing
Exit Sub
End If
End With
Disp = Mid$(Fname, InStrRev(Fname, "\") + 1)
With r.Hyperlinks(1)
.Address = Fname
.ScreenTip = Format(d, "yymmdd")
.TextToDisplay = Disp
End With
Set r = Nothing
End Sub
'--------------------------------------------------
丁寧な回答ありがとうございます。マクロで対応するしかないのですね。未知の領域ですがためしてみたいと思います。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 12:54
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行して 作業フォルダの中にある PDFファイル名を 3 2023/07/01 15:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/26 17:13
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/02 11:48
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- PDF PDFに精通した方に質問。JPEGファイル群を一つのPDFファイルにするときの容量変化について 6 2023/07/23 19:06
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Excel(エクセル) フォルダAから1つのファイルだけを、フォルダBへを移動するVBAについて 2 2022/07/25 11:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでセルに入力したパ...
-
複数のExcelブックから一覧表を...
-
エクセルVBAでファイルを別で保...
-
Excelでファイル指定してopenで...
-
エディタで効率的な切り出し方法
-
エクセル:フォルダ内のファイ...
-
検索結果をテキスト吐き出し
-
エクセルにファイルを添付したい
-
VBAで複数エクセルシート内のセ...
-
複数のHTMLファイルの中身にお...
-
excelに貼り付けた数値が勝手に...
-
ローマ字→カタカナへ変換(エク...
-
一部マクロを変更したいので教...
-
Excel:コマンドボタンの移動
-
エクセルでマクロを実行したい...
-
ボタン天国200について、
-
AUTO-CAD ツールボタンをひとつ...
-
VBAで複数検索、AdvancedFilter
-
エクセルのマクロ機能で前のシ...
-
エミュレータでジョイパットを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでセルに入力したパ...
-
excelに貼り付けた数値が勝手に...
-
EXCELのVBAで画像を選んだ順に...
-
Teraマクロで日付ディレクトリ...
-
ファイルを並び替えるときの「...
-
PDF ファイルが開けません。
-
VLOOKUP関数とネットワークに置...
-
エディタで効率的な切り出し方法
-
ハイパーリンクで前回値をひき...
-
=CELL("filename")で取得したフ...
-
エクセルのファイル間のリンク...
-
エクセル マクロの式を教えてく...
-
Excel VBAで自動的にハイパーリ...
-
VBAでFileDialogを利用してファ...
-
CSVで文字化けしてしまうのを直...
-
エクセルからスキャナVBAで連動...
-
「やよいの青色申告」のファイ...
-
Excel2010のVBAで起動時に連続...
-
Notes 開発で、 excelファイル...
-
ファイルを開かず任意ファイル...
おすすめ情報