
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは。
大変失礼しました。私は、質問を読み違えてしまいました。
変更したのは、下の部分のOpenFiles の部分だけです。
これで様子をみてください。
'//
Sub RemoveHeperlinkObject()
Const mPATH As String = "C:\Users\[UserName]\My Documents\Test1\" '行末には¥を入れること
Dim FName As String
FName = Dir(mPATH & "*.xls?", vbNormal)
Do While FName <> ""
If FName <> "." And FName <> ".." Then
If (GetAttr(mPATH & FName) And vbNormal) = vbNormal Then
Call OpenFiles(mPATH & FName)
End If
End If
FName = Dir
Loop
End Sub
'//
Sub OpenFiles(ByVal fn As String)
Dim flg As Boolean
Dim ar As Variant
Dim n As Variant
With Workbooks.Open(fn) 'これ以下変更
ar = .LinkSources(Type:=xlLinkTypeExcelLinks)
If Not IsEmpty(ar) Then
For Each n In ar
.BreakLink Name:=n, _
Type:=xlLinkTypeExcelLinks
Next
End If
If .Saved = False Then
.Save
End If
.Close False
flg = False
End With
End Sub
'///
No.1
- 回答日時:
あくまでも、リンクだけを取り去ればよいのですね。
文字は、そのままです。もし、ファイル数が多い場合は、On Error トラップを設けて、エラーで止まらないようにしますが、今回は、少ないのでそのままにしています。なお、編集されたかどうかは、タイムスタンプを見れば分かります。編集されていないファイルは、タイムスタンプは前のままです。'//
Sub RemoveHeperlinkObject()
Const mPATH As String = "C:\Users\[UserName]\My Documents\Test1\" '行末には¥を入れること
Dim FName As String
FName = Dir(mPATH & "*.xls?", vbNormal)
Do While FName <> ""
If FName <> "." And FName <> ".." Then
If (GetAttr(mPATH & FName) And vbNormal) = vbNormal Then
Call OpenFiles(mPATH & FName)
End If
End If
FName = Dir
Loop
End Sub
Sub OpenFiles(ByVal fn As String)
Dim sh As Worksheet
Dim hyp As Hyperlink
With Workbooks.Open(fn)
For Each sh In .Worksheets
For Each hyp In sh.Hyperlinks
hyp.Delete
Next hyp
Next sh
If .Saved = False Then
.Save
End If
.Close False
End With
End Sub
'///
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでセルに入力したパ...
-
excelに貼り付けた数値が勝手に...
-
エディタで効率的な切り出し方法
-
VLOOKUP関数とネットワークに置...
-
Teraマクロで日付ディレクトリ...
-
Excelvbaで同一フォルダー内の...
-
エクセル:フォルダ内のファイ...
-
初めまして、VBA初心者です。 ...
-
Excelでリンクを使用すると#N/A...
-
ファイルを並び替えるときの「...
-
EXCELのVBAで画像を選んだ順に...
-
「やよいの青色申告」のファイ...
-
ローマ字→カタカナへ変換(エク...
-
Excel:コマンドボタンの移動
-
コマンドボタンを押すたびに大...
-
マクロ 実行ボタンを押さずに...
-
エクセル グラフの軸の最小値最...
-
エラーになってないのにVBA...
-
スクロールしてもボタンを常に...
-
Excel VBA --- コマンドボタ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでセルに入力したパ...
-
excelに貼り付けた数値が勝手に...
-
EXCELのVBAで画像を選んだ順に...
-
Teraマクロで日付ディレクトリ...
-
ファイルを並び替えるときの「...
-
ハイパーリンクで前回値をひき...
-
エディタで効率的な切り出し方法
-
=CELL("filename")で取得したフ...
-
エクセルからスキャナVBAで連動...
-
VBAでFileDialogを利用してファ...
-
エクセルファイルから指定した...
-
EXCEL VBA ー 同一フォルダ内の...
-
Excelでファイル指定してopenで...
-
Notes 開発で、 excelファイル...
-
複数のExcelブックから一覧表を...
-
エクセルにファイルを添付したい
-
Excel VBAで自動的にハイパーリ...
-
Excelvbaで同一フォルダー内の...
-
「やよいの青色申告」のファイ...
-
CSVで文字化けしてしまうのを直...
おすすめ情報
ありがとうございます!
すみません、リンクも色々あるかもしれません。
マクロの記録で確認したところ、以下のようにでましたので、Breaklinkを使用するようです。
どのように修正すればよいか教えて頂けますと幸いです。
ActiveWorkbook.BreakLink Name:= _
"\\○○\○○.xlsx" _
, Type:=xlExcelLinks