実現したいこと
マクロのハイパーリンクをファイルサーバーの絶対パスにしたい
発生している問題・分からないこと
現在、以下のようなマクロを使っています。
①データを入力
②「保存」ボタン押下
③エクセルを新しく作成し、お客さんの詳細情報を入力する(1エクセルファイルにつき、1人のお客様情報)
④③のエクセルを社内の共有ファイルサーバーに保存する
⑤④に対して、ハイパーリンクを作成する。
上記のマクロファイルの運用を始めて半年以上たちますが、問題なくハイパーリンクが機能していました。
ただ、最近気づいたのですが、約3か月ほど前のハイパーリンクがローカルのファイルがリンク先になっており、
リンクが機能していないです。
※ファイルの保存は適切にできています。
原因を探ると、ハイパーリンクのアドレスがローカルパスになっていました。
(右クリック→「ハイパーリンクの編集」を選択してアドレスを確認。)
マクロ上では、絶対パスを指定してハイパーリンクを作成していたのですが、どうしてローカルファイルが指定されてしまったのでしょうか。
また、どうして古いハイパーリンクのみローカルファイルになってしまったのでしょうか。
何か、改修方法ありますでしょうか。
エラーメッセージ
error
1右クリック→「ハイパーリンクの編集」を選択してアドレスを確認すると、ローカルパスにてハイパーリンクが設定されていました。 2 3こんな感じのローカルパスが設定されていました。 4C:\Users\tokyo\AppData\Roaming\Microsoft\Excel\\NO10000太郎さま
該当のソースコード
VBA
1Const constCosutomorSaveFolder As String = "\\192.168.0.xxx\xxx1\お客様情報" '保存先 2Const constCosutomorGenshiFolder As String = "\\192.168.0.xxx\xxx1\お客様情報の原紙" 'お客様情報の原紙の場所 3Const constCosutomorGenshiFileName As String = "お客様情報原紙(空調).xlsm" '客様情報原紙(空調) 4 5 '一覧表シートへ転記作業 6 Dim lngEndRow As Long 7 8 With ThisWorkbook.Worksheets("お客様一覧") 9 lngEndRow = .Cells(Rows.Count, 2).End(xlUp).Row 10 11 .Cells(lngEndRow + 1, 3).Value = [営業窓口].Value 12 .Cells(lngEndRow + 1, 4).Value = [営業所担当者].Value 13 .Cells(lngEndRow + 1, 2).Hyperlinks.Add Anchor:=.Cells(lngEndRow + 1, 2), _ 14 Address:=constCosutomorSaveFolder & "\" & fileName, _ 15 TextToDisplay:=[お客様No].Value 16’↑ハイパーリンク設定 17 End With 18 19 20 ' ハイパーリンク先にファイルを保存 21 FileCopy constCosutomorGenshiFolder & "\" & constCosutomorGenshiFileName, _ 22 constCosutomorSaveFolder & "\" & fileName 23
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
一致するような情報がありませんでした。
補足
特になし