人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ハイパーリンクが複数設定されているMS WordとExcelのファイルを、整理するため、ファイル名とその内部のハイパーリンク先をリストしてくれるファイラのようなものはありませんか

●質問者: hengsu
●カテゴリ:コンピュータ
✍キーワード:Excel MS Word ハイパーリンク ファイル
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● cx20
●45ポイント

http://www2.moug.net/cgi-bin/technic.cgi?exvba+TP06010043+Print

URL はダミーです。


Word / Excel のハイパーリンクの一覧を出力するスクリプト(VBScript)を書いてみました。

以下のスクリプト(ShowHyperLinks.vbs)を、調査対象のフォルダにコピーして、

コマンドラインで、


C:¥調査対象フォルダ>CScript ShowHyperLinks.vbs //Nologo > links.csv


と実行すると、以下のようにタブ区切りのファイルが出来上がります。


■ links.csv について

[test.doc]

Text[TAB] Address

Hogehoge[TAB] http://www.google.com/

http://www.microsoft.com/japan/[TAB] http://www.microsoft.com/japan/

http://www.hatena.ne.jp/[TAB] http://www.hatena.ne.jp/


[test.xls]

Text[TAB] Address

http://www.microsoft.com/japan/[TAB] http://www.microsoft.com/japan/

aaa[TAB] http://www.google.com/

http://www.hatena.ne.jp/[TAB] http://www.hatena.ne.jp/


■ ShowHyperLinks.vbs について


’ FileName : ShowHyperLinks.vbs

’ Usage : CScript ShowHyperLinks.vbs //Nologo > links.csv


Option Explicit


Main


Sub Main()

Dim fso

Set fso = WScript.CreateObject(”Scripting.FileSystemObject”)

Dim folder

Set folder = fso.GetFolder(”.”)

Dim file

For Each file In folder.Files

Dim strFileName

strFileName = file.path ’ file.name

If StrComp(Right(strFileName, 3), ”doc”, 1) = 0 Then

ShowWordHyperLinks( strFileName )

ElseIf StrComp(Right(strFileName, 3), ”xls”, 1) = 0 Then

ShowExcelHyperLinks( strFileName )

End If

Next


End Sub


Sub ShowExcelHyperLinks( strFileName )

Dim excel

Set excel = CreateObject(”Excel.Application”)

Dim book

Set book = excel.Workbooks.Open( strFileName )

WScript.Echo ”[” & book.Name & ”]”

WScript.Echo ”Text” & vbTab & ”Address”

Dim sheet

For Each sheet In book.Worksheets

Dim link

For Each link In sheet.HyperLinks

WScript.Echo link.TextToDisplay & vbTab & link.Address

Next

Next

book.Close False

excel.Quit

Set excel = Nothing

End Sub


Sub ShowWordHyperLinks( strFileName )

Dim word

Set word = CreateObject(”Word.Application”)

Dim doc

Set doc = word.Documents.Open( strFileName, , True)

WScript.Echo ”[” & doc.Name & ”]”

WScript.Echo ”Text” & vbTab & ”Address”

Dim link

For Each link In doc.HyperLinks

WScript.Echo link.TextToDisplay & vbTab & link.Address

Next

doc.Close False

word.Quit

Set word = Nothing

End Sub


※ プログラム内の記号(「¥」「”」「’」など)と一部空白文字は、全角になっています。

お手数ですが、実際に動作させるには、半角に書き換えてお使い下さい。

◎質問者からの返答

ありがとうございます。求めていた回答とは違いますが、何とかなりそうなので、助かりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ