• 締切済み

【マクロ】セル内のテキストを隣のセルにハイパーリンクしたい

マクロ初心者です。過去の質問を検索したのですが、同様なものが見つかりませんでしたので、新たに質問させていただきます。 エクセルで、A1セルに入力されたテキスト(ファイル名)を、隣のB1セルのテキストにハイパーリンクしようと思います。 ※セルは全部で1000行程度 ※A列セルのテキスト内容は全て同じ文字数で、テキストの途中で4桁のみ内容が変わる ※実際の例をあげると次のような感じです。 A1→あいうえお/at0****.xdw B1→かきくけこ(※文字数はバラバラ) A2→あいうえお/at0****.xdw B2→さしすせそたちつてと 試しにマクロの自動記録を使ってみたのですが、マクロにテキスト内容が記録されてしまい、他のセルで実行するとテキスト内容が上書きされてしまいます(当たり前ですが・・・)。 初心者なりに学習しながら答えを見つけなければと思うのですが、毎回急を要する時にしかマクロを使わないため、上達しません。頼ってばかりで申し訳ないのですが、ご教授いただけると助かります。よろしくお願いいたします。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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列の記述が不足していた場合は式中で追記したり,ハイパーリンクの基点を設定して使います。

music9_9
質問者

お礼

keithin様 さっそくご回答頂きましてありがとうございます。 教えて頂いたマクロで試したところ、思ったとおりの事ができました。 ご心配頂きました A列の記載内容が,「本当にそれでハイパーリンクのアドレスとして使えるのか」 という点ですが、これも問題ありません。 また、関数での解決法につきましては「ハイパーリンクで」という縛りがあったため、マクロにこだわった次第です。 お陰さまで無事解決いたしました。 ありがとうございます。

関連するQ&A