[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『文字に付いているハイパーリンクを別のセルに記載のURLに自動で変更したい』(アポロ)
色々試したものの出来ず困っています。
お力お貸し下さい。
A1セルに「添付資料」と文字が書いてあります。
更に、その文字にはサーバー内のとあるフォルダ内のファイルへとハイパーリンクが付いています。
今回やりたい事は、そのリンクしているファイルを月が変わると別のファイルにリンクを差し替えたいです。
イメージ→今は「添付資料_7月10日.xlsx」のファイルに飛んでいるが、次の月には「添付資料_8月8日.xlsx」にリンクを変えたい。
例えば、別のセルにそのファイルのリンク先URLを貼っておいて、次の月になったら手動でURLを変えるとして、そのセルと「添付資料」の文字のセルをリンクさせて自動で変わるように出来ないか色々試しましたが、実現できませんでした。
最終的には、メールを自動作成するマクロがあり、その本文の中に
A1セルのリンク付きの「添付資料」を下記コードのように貼り付けています。
BN.Sheets("Sheet1").Range("A1").Copy
.Paste
宜しくお願いします。
< 使用 Excel:Office365、使用 OS:Windows10 >
単純な手として、
(1) ハイパーリンクが仕込んである文字列(あるいはセル)を片っ端から見つけて (2) リンク先が特定のキーワードを含んでいれば書き換え
というような方法でいけそうですが、既にためしたのでしょうか?
(もこな2) 2022/07/29(金) 20:51
こちらで試したのは、
A2セルにURLを貼って、それを文字列に設定してあるハイパーリンクで、
ドキュメント内のA2セルを設定しておけば変わらないか?と思ったのですが、
そうするとURL先ではなくA2セルに飛んでしまいました。
(アポロ) 2022/07/29(金) 21:28
リンク先が頻繁に変わるのであれば、
HYPERLINK関数を使うのが簡単ではないですか?
第一引数に、リンク先が書かれているセルを指定すればよいでしょう。
そうすれば、その特定セルを変更するだけで、リンクが変化します。
当然ながら、メールへのコピーペイストでリンクも併せてコピーされます。
(γ) 2022/07/29(金) 22:06
ハイパーリンク関数ですね!!
ありがとうございます。
求めているやり方にマッチしそうなので、早速トライしてみます。
(アポロ) 2022/07/29(金) 22:19
もこな2様
アドバイスありがとうございました。
置き換えでも挑戦してみたのですが、マクロ知識が及ばす、エラー(オブジェクトは、このプロパティまたはメソッドをサポートしていません。)が出ます。
やろうとしたのは、A1セルに「添付資料」と書いたリンク付き(添付資料_7月10日.xlsxへのリンク)文字があり、
B2セルに「8月8日.xlsx」と記入したら、マクロを流すと、添付資料に埋め込まれたリンクが、"_"以降の7月10日.xlsxが、8月8日.xlsxに置き換わるというように作成したいです。
Sub link()
With Sheets("sheet11")
.Range("A1").adress = Replace(.Range("A1").adress, Mid(.Range("A1").Value, InStr(.Range("A1").Value, "_") + 1), .Range("B2").Value) End With
End Sub
よろしくお願いします。
(アポロ) 2022/07/30(土) 09:37
Range("A1").adress 〜〜〜
■2
>ハイパーリンクはA1セルに限定して仕込んである
>B2セルに「8月8日.xlsx」と記入したら、マクロを流すと、
わざわざ、B2セルに書き込むくらいならそのままA1セルをて修正したって手間は変わらないんじゃないかとおもいますが、学習用ですかね。
「■1」を調べてみればわかったと思いますが、ハイパーリンクを設定するには「Hyperlinks.Add メソッド」を使います。
例えばこんな感じです。
Sub 研究用() Dim 配列 As Variant
Stop 'ブレークポイントの代わり With Worksheets("Sheet11") 配列 = Split(.Hyperlinks(1).Address, "\") 配列(UBound(配列)) = .Range("A1").Value & "_" & Range("B1").Text & ".xlsx" .Hyperlinks.Add anchor:=.Range("A1"), Address:=Join(配列, "\") End With End Sub
(もこな2) 2022/07/31(日) 18:16
ハイパーリンクの設定方法、調べてみた上で、
もこな2様の書いていただいた研究用コード理解しました。
(配列部分は完全に理解しきれていないので、別途配列のVBA勉強してみます)
とてもシンプルな考え方ですね。
ありがとうございます。大変勉強になります。
仰る通り、今一度落ち着いて勉強してみたいと思います。
(アポロ) 2022/07/31(日) 18:41
一応説明しておくと【サーバー内のとあるフォルダ】と仰っているのでおそらく↓リンクアドレスは↓のようになってるはずです。
\\123.456.789\hoge\hoge\添付資料_7月10日.xlsx
このうち、書き換えたいのはファイル名である「添付資料_7月10日.xlsx」だけなので、"\"を目印に↓のように切り分け
【】【】【123.456.789】【hoge】【hoge】【添付資料_7月10日.xlsx】
このうち最後のものがファイル名であると特定しているのです。
ファイル名(の部分)だけ調べるのであれば、ほかにも後ろから"\"を探してみるとか、DIR関数でファイル名を調べてみるとか、アプローチがあるとおもいますし、そもそも【サーバー内のとあるフォルダ】が固定ならば、わざわざ調べる必要もないのですから、この辺はご自身でカスタマイズしてみてください。
(もこな2) 2022/07/31(日) 19:48
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.