• ベストアンサー

ハイパーリンクの自動設定マクロ

セルC5~C1000には「N1309068」の様なN○○○○○○○(半角英数字)の文字が入力されています。 コマンドボタンを押すとセルC5~C1000の範囲が自動でハイパーリンクが設定される様にしたいです。 リンクさせるファイルはデスクトップの「改善シート(リンク用)」のフォルダの中にある「N1309068 KAIZEN」のエクセルファイルです。 セルC5~C1000の範囲に記入した数字を、リンク先のフォルダの中にあるエクセルファイルN○○○○○○○ KAIZEN(半角英数字)の○○○○○○○の数字と一緒のファイルにリンクさせるようにするVBAは、どの様に組めば宜しいでしょうか?

noname#247334
noname#247334

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>「N1309068 KAIZEN」のエクセルファイルです。 ファイルに向けてハイパーリンクを設定するときは、ファイルの「拡張子」まで正しく指定しなければいけません。 N1309068 KAIZEN.xlsxなのかxlsなのかxlsmなのか、実際をキチンと調べ正しくご自分でマクロに反映してください。 手順: シートに配置したアクティブXコントロールのコマンドボタンのマクロに下記を準備する private sub CommandButton1_Click()  dim myPath as string  dim h as range  dim WSH as variant  set wsh = createobject("Wscript.Shell")  mypath = wsh.specialfolders("Desktop") & "\"  activesheet.hyperlinks.delete  for each h in range("C5:C1000").specialcells(xlcelltypeconstants, xltextvalues)  if h like "N*" then   activesheet.hyperlinks.add anchor:=h, address:=mypath & h.value & " KAIZEN.xlsx" ’拡張子を正しく設定する事  end if  next  set wsh = nothing end sub >コマンドボタンを押すと エクセルには「フォーム」と「アクティブXコントロール(コントロールツールボックス)」の2種類のコマンドボタンが用意されています。どちらを使っているのかに応じて、正しいマクロの書き振りが違います。 ご相談投稿では、どちらを使っているのか(使いたいのか)正しく情報提供するよう心掛けて下さい。次回以降のご参考に。

noname#247334
質問者

お礼

この度は回答して頂きありがとうございました!! 非常に助かりました。

noname#247334
質問者

補足

この度は回答して頂き、誠にありがとうございます。非常に助かりました。 拡張子は「xls」ファイルです。今後、相談する場合は詳しく書きたいと思います。 今回のVBAを実際に作動させると、C5~C1000の範囲はハイパーリンクになりました。 アクティブXコントロール(コントロールツールボックス)をクリックし、実行するとC5~C1000の文字の配置が縦が「標準」で横が「下詰め」となり、N○○○○○○○(半角英数字)の記入している文字の下に引いていた罫線が消えてしまいます。 なので、文字の下の罫線が消えず、文字の配置が縦も横も「中央揃え」にするVBAと言うのも出来るのでしょうか?

その他の回答 (2)

回答No.3

こんにちは。 書式とか問題までは手を出す気にはなれませんが、ちょっと口をはさみます。 ネットワークドライブ「E:\フォルダX\5係\改善提案\改善シート\改善シート(リンク用)」 #1のmypath に、そのアドレスを入れればいいだけじゃないのですか? #1さんの書き方は、質問の内容上、やむを得ず、そう書かざるを得なかったからでしょうけれど。 私は、ただ、締められないで、質問が長続きしているようなので、気になりました。 この質問のようなファイル名だけの場合は、わざわざハイパーリンクづけするようなスタイルはしません。もともと、拡張子が同じExcel系なら、そのままテキスト値だけで、以下のコードで開けます。 ハイパーリンクにした後のものには使えませんが、ハイパーリンク自体を削除すれば、いろんな書式の問題も解決するはずです。ファイル名もフォルダー名も正しく入力さえしていれば、ダブルクリックで開けます。 実際は、分っていないと、どこかでつまずきます。 '//該当するシートモジュール Private Const mPATH = "Your Folder" 'ご自身の指定のフォルダー(モジュールの先頭に書く) Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)  Cancel = True  If Target.Value = "" Then Exit Sub  If StrComp(Right(Target.Value, 4), ".xls", 1) <> 0 Then Exit Sub  If Target.Hyperlinks.Count > 0 Then Exit Sub  If Dir(mPATH & Target.Value) = "" Then MsgBox "ファイルが見つかりません。", 48: Exit Sub  Workbooks.Open mPATH & Target.Value End Sub '//

noname#247334
質問者

お礼

この度は補足事項に回答して頂きありがとうございました。 色々と勉強になりました。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

では回答したマクロの  activesheet.hyperlinks.delete の一行を削除してください。 それでもダメなら、今のブックからC列をコピー、「まっさらのエクセルブック」のC列に形式を選んで貼り付けの「値」で貼り付け、罫線、書式設定、コマンドボタンを「新しく」設定し、上述の一文を除いたマクロを実行し状況を確認してください。

noname#247334
質問者

お礼

この度は回答して頂きありがとうございました!! 非常に助かりました。

noname#247334
質問者

補足

補足して頂きありがとうございます。 最後にもう一つ聞きたいのですがデスクトップで無く、ネットワークドライブ「E:\フォルダX\5係\改善提案\改善シート\改善シート(リンク用)」のフォルダの中にあるN○○○○○○○(半角英数字)のxlsファイルをハイパーリンクする場合はどの様にすれば宜しいのでしょうか?

関連するQ&A

  • Excel VBAで自動的にハイパーリンクを設定する方法について教えて

    Excel VBAで自動的にハイパーリンクを設定する方法について教えてください。 VBAについては、ほとんど初心者なので、どうやって良いのか分かりません。 やりたい作業については、あるExcelのブックに一覧表があり、その一覧表のIDと合致したファイルをハイパーリンクさせたいのです。 一覧表は、 ID    項目  ・・・VBA A-0001  aaaa B-0002  bbbb の様になって、VBA列のセルをアクティブにするとID列のセルに自動でハイパーリンクが設定される。 そして、リンクをさせたいファイル名が"A-0001 aaaa・・・"となっているので 頭の6文字が合致したら、そのファイルを選択してくれるようにしたいです。 説明が下手で申し訳ありませんが、皆様のお知恵をお貸しください。 出来れば・・・ボタンを押すとリンクが貼ってないIDは、全てリンクがかかるようにもしたいのですが・・・。 欲張りを言って申し訳ありません。 宜しくお願いいたします。

  • ハイパーリンクについて

    Excel2003を使っています。 図のように名前がリンク先というフォルダの中に Aファイル、Bファイル、Cファイル、ABCファイル の4つのファイルがあります。 この中のABCファイルのシート、セルにハイパーリンクを使い Aファイル、Bファイル、Cファイルそれぞれをダイレクトに 開けるようにしました。<図の左上> このABCファイルをよく使うので、リンク先フォルダから出し、 デスクトップで使えるようにしたところ、"指定されたファイルは開くことができません"の エラー表示がでました。調べてみるとフォルダから出したことで ハイパーリンクが変更されてしまっています。 リンク先フォルダから出してもハイパーリンクが機能できる方法はあるのでしょうか? それともハイパーリンク先を再度指定入力しなければならないのでしょうか? おわかりの方、よろしくお願いします。

  • エクセル・ハイパーリンク

    エクセルのハイパーリンクについて質問です。 ハイパーリンクでリンク先を 例)c:\Program Files\office とリンクさせたいとき、エクセルのA1のセルにProgram Files、B1のセルにofficeと書いてそれを参照し、c:\A1\B1 のような感じでできる方法はないのでしょうか? またVBA等でマクロを組んで似たようなものを作る事はできるのでしょうか? 稚拙な文章で申し訳ないですがよろしくお願いします。

  • excel ハイパーリンク マクロ

    excelのA1からA10の各セルの中に自分のPCの中のあるファイルのアドレスが入っているものとします。 そのときマクロを動かすことでそれをハイパーリンクに変えるにはどんなマクロを書けばいいでしょうか。 いちいち手で張るのはめんどうなことと、ときどきリンクが壊れることがあってマクロで一発でやりたいのです。

  • エクセルVBAハイパーリンクの自動設定について

    はじめて質問させていただきます。 エクセルVBAハイパーリンクの自動設定についてですが A列にAAA、BBB、CCC、DDD・・・という文字列が入っています。 D:\dataというフォルダーにAAA-01、BBB-02、CCC-01、DDD-05 という名前のファイル(.DOC)が入っています。 A列の文字列にハイパーリンクを貼りたいのですがどうしたらよいでしょうか? AAAの文字にAAA-01.docのハイパーリンクを自動で貼る。 -01はファイルのバージョンで更新されたら-02、-03と変わって いくため頭から3文字があえばリンクを貼るようにしたいのです。 よろしくお願いします。

  • ハイパーリンク設定をマクロに記録したい(エクセル2000)

    フォルダ内のファイルの一覧をエクセルで作り、目次のようにハイパーリンクでジャンプするようにします。1フォルダ、1シートとします。 エクセルの文字列を選択して、ハイパーリンク設定画面で、リンク先のフォルダを指定するところまでをマクロに記録し、ショートカットキーに登録して作業を早くしたいのです。 ところが、リンク設定が完了するまでマクロ記録の終了ができません。フォルダ指定までのマクロでないと他の文字列に使えません。 リンク設定の途中でマクロ記録を終了する方法はないでしょうか?

  • エクセルのハイパーリンクについてです。

    エクセルのハイパーリンクについてです。 ハイパーリンクをセルに指定すると、指定した先のファイル名やパスがセル内に記載されてしまいますが、 この記載をなくしたい場合、どうしたらよいでしょう? ちなみに現状は絶対参照がいやで相対参照としたいので、 セル内に直接 =HYPERLINK("..\上位階層\ファイルがある階層\各リンク付けしたフォルダ\・・・") としています。 上記のようにすると、「上位階層\ファイルがある階層\各リンク付けしたフォルダ\・・・」のリンク先が全てセル内に記載されてしまいます。 この記載をなくしたいです。

  • EXCELのハイパーリンク

    EXCELのハイパーリンクについて教えて下さい。 EXCELにて700件程のハイパーリンクを作成しようと考えていますが数が多いため1件ずつハイパーリンク先を設定するには多くの時間と労力を要しますのであらかじめローカルフォルダ名とファイル拡張子を入力しておき、ファイル名だけを入力すればハイパーリンクを自動設定する方法はないでしょうか? お手数ですがお知恵をお貸し下さい。宜しくお願いします。 例) ・セルA1にローカルフォルダ名又はURLの一部 ・セルB1にファイル名又はURLの一部 ・セルC1にファイル拡張子又はURLの一部 これらを結合(A1&B1&C1)したハイパーリンク先をセルD1に表示すると共にセルD1をローカルフォルダ内のファイル又はサイトを自動的にハイパーリンク設定させる。

  • EXCELでハイパーリンク先が変わってしまいます

    EXCELで別フォルダにあるファイルにハイパーリンクを貼っています。 CドライブのAフォルダにBとDというフォルダがあり、 BにEXCELファイル、Dにリンク先のファイルがあります。 社内ではわたしの席と別の人の席で正常動作を確認しているのですが、 取引先に送ったところリンク先が開かないと言われました。 現場で見たわけではないのでよくわかりませんが、 ハイパーリンクのセルにカーソルを合わせたときに出てくるリンク先が file:///C:\A\D\ファイル名 となるべきなのに file:///C:\D\ファイル名 となってしまっているようです。 クリックすると「指定されたファイルを開くことができません」というダイアログが出るとのこと。 相対パスでリンクされているはずなのですが、環境によってこのように変わってしまうことがあるのでしょうか? 解消方法がわかりましたら、是非教えてください。 よろしくお願いいたします(T-T)

  • 【Excel】テキストにハイパーリンクを設定したとき

    エクセルのセルの中のテキストに、 別のエクセルファイルへハイパーリンクを設定したときに、リンク先のファイルが開くのですが なぜか同じファイルを2回読み込んでしまいます。 きちんと表示はされるのですが めざわりなので、1回できちんと開けて表示させたいので、ご存知の方、教えてください。 よろしくお願いいたします。

専門家に質問してみよう