質問: EXCEL2002を使っています。 現在A1のセルに=HYPERLINK("C:\My Documents\1.xls")という式を入れています。A2のセルには左記式と同じでファイル名が2.xls、以降順番にA2000(2000.xls)まで同様の式を入れています。 現在、A1からA2000のセルまで関数の式が表示されてしまっているのですが、できれば関数の式は見せずに任意の文字を表示させ、さらにその文字をクリックすればリンクがはられるようにしたいのです。 文字を先に入力してメニューの挿入→ハイパーリンクとやれば希望通りの物ができるのですが、2000件ものマニュアル作業は避けたいと思います。 HYPERLINKの式を先に入力した場合でクリックのできる文字表示にする良い方法はないでしょうか?
回答: こんな感じのマクロで対応してはいかがでしょう。 例えば、 A列に表示したい文字、 B列にリンクしたいアドレスを書いておきます。 A B 1 aaa c:\abcd.pdf 2 bbbb c:\cass.pdf 3 ssss c:\asasd.pdf 4 あいうえ d:\asssd.pdf この状態で、A1をアクティブにして、下記のマクロを実行すると、A列のデータに対して B列のファイルがハイパーリンクされます。 ===== VBA マクロ ===== Sub sample() dim link_fname as String While ActiveCell.Value <> "" link_fname=ActiveCell.Offset(0, 1).Value 'もし既にリンクが設定していた場合エラーになるので、前もってリンクのクリアーしておきます。 ActiveCell.Hyperlinks.Delete ActiveCell.Hyperlinks.Add Anchor:= _ ActiveCell.Offset(0, 0), _ Address:=link_fname ActiveCell.Offset(1, 0).Activate Wend End Sub これとは少し似た利用例で、作成したリストを使いリンクを張り、XML&XSLデータとしてはき出すVBAのマクロを以前作ったのが有るので、Upしています。 もし良かったら、参照してみてください。 参考URL: