利用者同士で解決するサポートコミュニティOKBIZ. for Community Support

NEC LAVIE公式サイト へようこそ

締切り済みの質問

このQ&Aは役に立ちましたか?

Excel 2016 ハイパーリンク一括変更

ハイパーリンクの参照先を一括で変更したいのですが、操作方法、コマンドが分かりません、ご教授下さい。

変更したいのは、参照先の外付けディスクです。
 具体的には f:\ → e:\ への一括変更です

宜しくお願いします。

※OKWAVEより補足:「NEC 121ware :ソフトウェア」についての質問です

投稿日時 - 2021-06-06 08:53:16

QNo.9891868


困ってます

回答 (5件中 1~5件目)

最初が3行、F列の場合はCells(3, 6).SelectですがCells(z, z).Selectは意味がありません。削除しても構いません。ブランクは不要です。「For Each h In ActiveSheet.Hyperlinks」をマウスでなぞり色を反転させデバック(D) → ブレークポイントの設定/解除(T)をすると「For Each h In ActiveSheet.Hyperlinks」は茶色になり左端に茶色の●が表示されます。実行を押すと「For Each h In ActiveSheet.Hyperlinks」で黄色」になり停止します。F8キーを押すと次の「h.Address = Replace(h.Address, "e:\", "f:\")」で停止します。その状態で「h.Address」にマウスポインタをのせると現在の「h.Address」の値が表示されます。F8押して[Nect]が黄色になった状態でh.Address」にマウスポインタをのせると変更後の値が表示されます。ブレークポイントの解除はストップ[■]を押せば黄色は消えますのでデバック(D) → すべてのブレークポイントの解除(C)で解除されます。何分ソースの状態なので説明が分かりにくいと思います。

投稿日時 - 2021-06-07 19:10:59

ANo.5

このQ&Aは役に立ちましたか?

すみません。例の「h.Address = Replace(h.Address, "f:\ ", "e:\ ")」をコピーすると、「"f:\ "」の「f:\」と「”」の間に半角の空白が入っている為上手く文字置き換えが出来ません。現在のh.Address = Replace(h.Address, "f:\ ", "e:\ ")」を削除して次をコピーして同じ場所に貼り付けするか、空白を削除して実行すれば正常に置き換わります。

h.Address = Replace(h.Address, "f:\", "e:\")

投稿日時 - 2021-06-07 09:24:45

ANo.4

補足

たびたびすみません、やはり、うまく行きません
 質問ですが
  >Cells(1, 1).Selectリンクされている最初の行列(ここでは1行A列)
 ハイパーリンクの最初が3行、F列の場合はCells(3, 6).Selectの記述で宜しいですか
 (1,のうしろにブランクが必要ですか?

投稿日時 - 2021-06-07 17:32:16

1.のコピーはオリジナルファイルを残す為で、必須ではありません。13はPublic 1行目のSub RiLink()から1行1行コンパイル&実行するためです。14を実行後なにもかわりません。、デスクトップ画面下のタスクバーのExcelアイコンにマウスを置くとシート画面とVisual Basic画面が表示されますのでシート画面をクリックし、シート画面に切り換えてシート画面を前面に表示してリンクのセルを右クリック → ハイパーリンクの編集(H) → アドレス(E)が以下に変更されていることが確認できます。
1行目 f:\¥aa.pdf   → e:\¥aa.pdf
2行目 f:\¥bb.pdf → e:\¥bb.pdf
.
.
?行目 f:\xx.pds → e:\¥bb.pds

実行終了したことを分かるようにするには「Next h」と「End Sub」間に次ような1行を追加すれば表示されます。Msgbox("一括変更完了")

15でかわらないのはコピーのしかたの間違いと思います。2つのシートを並べてマクロのあるSheet1をマクロのないシートにドラッグ&ドロップすればコピーされます。なお、マクロ付エクセルファイルを保存する場合の拡張子はXlsmです。

投稿日時 - 2021-06-06 18:28:33

ANo.3

補足

ご丁寧にご教授有難うございます。初心者で理解が浅いので、時間をかけてチャレンジしてみます。また不明の場合は再度お問い合わせさせて頂きます。宜しくお願い致します

投稿日時 - 2021-06-06 20:08:23

回答が的を得ていなかったらご容赦ください、
例:Sheet1のA列から絶対アドレスでリンクしてる場合
1行目 → f:\¥aa.pdf
2行目 → f:\¥bb.pdf
.
.
?行目 → f:\xx.pds

1,対象のExcelファイルをコピーする。
2,コピーしたExcelファイルを開く
3、開発をクリック
4,Visual Basic クリック
5,挿入(I)クリック
6,標準モジュール(M)クリック
7,挿入(I)クリック
8,プロシージャ(P)クリック
9.名前に任意の文字を入力(例:RiLink)してOK
10、Public Sub RiLink() ~ 空白 ~ End Subが表示
11,空白に以下をコピーして貼り付け
Dim h As Hyperlink
Sheets("Sheet1").Select
Cells(1, 1).Select
For Each h In ActiveSheet.Hyperlinks
h.Address = Replace(h.Address, "f:\ ", "e:\ ")
Next h
12,以下完成形
Public Sub RiLink()
Dim h As Hyperlink
Sheets("Sheet1").Select
Cells(1, 1).Select
For Each h In ActiveSheet.Hyperlinks
h.Address = Replace(h.Address, "f:\ ", "e:\")
Next h
End Sub

13,Public Sub RiLink()をクリックしカーソルを置く

14,実行(▶)をクリックするかファンクションキー(F5)を押す。
* Sheets("Sheet1").Selectはリンクされているシート名(ここではSheet1)
  Cells(1, 1).Selectリンクされている最初の行列(ここでは1行A列)
15、コピー元を開き表示 → 整列 → 並べて表示でコピー元、コピーファイルを表示してコピーファイルのheet1をコピー元にコピーする

作成たコピーファイルを保存する場合は、拡張子をxlxmにして保存

投稿日時 - 2021-06-06 13:57:27

ANo.2

補足

項番14、15を実行しても何も変わりません操作手順に誤りが有るのでしょうか?

13番は単にカーソルを置いておけば宜しいのでしょうか?

1.のコピーは必然ですか?

お手数ですが宜しくお願いします

投稿日時 - 2021-06-06 17:29:54

ハイパーリンク一括変更はVBAでしかできないようです。

https://eguweb.jp/excel/converted-link-destination-of-hyperlink-at-once

以下のようなフトもあります。
Excelで一度に複数のハイパーリンクの名前を一括変更 → https://ja.extendoffice.com/documents/excel/5906-excel-rename-hyperlink.html

投稿日時 - 2021-06-06 09:11:14

ANo.1

お礼

早々の回答ありがとうございます。
VBAを使用する事は承知しており、外付けHDDのリンク先アドレスを変更する具体的コマンド&操作手順を知りたかったので質問しました

投稿日時 - 2021-06-06 09:21:36

質問する24時間以内の回答率95.6%

NEC LAVIE公式サイトは、NEC製パーソナル商品の各種情報を提供するWebサイトです。 新製品の紹介、オンラインショップに加え、サポート情報として、Q&A、ドライバ等のソフトウェアダウンロードコーナー、過去の商品仕様の検索や、電子マニュアルなど、多数の情報を掲載しています。 また、修理・回収/リサイクル・PC買い取りのご案内もあります。チャット(LINE/Web)やお電話でのお問い合わせに必要な登録やその手順もご案内しています。

質問する24時間以内の回答率95.6%