プロが教えるわが家の防犯対策術!

マクロ初心者です。過去の質問を検索したのですが、同様なものが見つかりませんでしたので、新たに質問させていただきます。

エクセルで、A1セルに入力されたテキスト(ファイル名)を、隣のB1セルのテキストにハイパーリンクしようと思います。
※セルは全部で1000行程度
※A列セルのテキスト内容は全て同じ文字数で、テキストの途中で4桁のみ内容が変わる
※実際の例をあげると次のような感じです。
A1→あいうえお/at0****.xdw B1→かきくけこ(※文字数はバラバラ)
A2→あいうえお/at0****.xdw B2→さしすせそたちつてと

試しにマクロの自動記録を使ってみたのですが、マクロにテキスト内容が記録されてしまい、他のセルで実行するとテキスト内容が上書きされてしまいます(当たり前ですが・・・)。

初心者なりに学習しながら答えを見つけなければと思うのですが、毎回急を要する時にしかマクロを使わないため、上達しません。頼ってばかりで申し訳ないのですが、ご教授いただけると助かります。よろしくお願いいたします。

A 回答 (1件)

ご質問の直接の回答としては


sub macro1()
 dim h as range
 for each h in range("B2:B" & range("A65536").end(xlup).row)
 activesheet.hyperlinks.add anchor:=h, address:=h.offset(0, -1)
 next
end sub
のような事かなと思います。

ただし「例えば」で書かれたA列の記載内容が,「本当にそれでハイパーリンクのアドレスとして使えるのか」たいそう疑問です。

追加の対処:教わったのをコピーして終わりじゃなく,マジメに検討してください
方法1:必要に応じて正しいアドレスとなるよう,マクロの中で文字列を追加する
方法2:ファイルメニューのプロパティでハイパーリンクの基点を設定する


なお,マクロでハイパーリンクを埋め込むのではなく,C列にHYPERLINK関数を入れてハイパーリンクにした方が,フレキシブルに便利なものに出来るかも知れません。

C1例:
=HYPERLINK(A1,B1)
#こちらの場合も同様に,A列の記述が不足していた場合は式中で追記したり,ハイパーリンクの基点を設定して使います。
    • good
    • 0
この回答へのお礼

keithin様

さっそくご回答頂きましてありがとうございます。
教えて頂いたマクロで試したところ、思ったとおりの事ができました。

ご心配頂きました

A列の記載内容が,「本当にそれでハイパーリンクのアドレスとして使えるのか」

という点ですが、これも問題ありません。
また、関数での解決法につきましては「ハイパーリンクで」という縛りがあったため、マクロにこだわった次第です。

お陰さまで無事解決いたしました。
ありがとうございます。

お礼日時:2010/04/09 18:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!