![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
Excel VBAで自動的にハイパーリンクを設定する方法について教えてください。
VBAについては、ほとんど初心者なので、どうやって良いのか分かりません。
やりたい作業については、あるExcelのブックに一覧表があり、その一覧表のIDと合致したファイルをハイパーリンクさせたいのです。
一覧表は、
ID 項目 ・・・VBA
A-0001 aaaa
B-0002 bbbb
の様になって、VBA列のセルをアクティブにするとID列のセルに自動でハイパーリンクが設定される。
そして、リンクをさせたいファイル名が"A-0001 aaaa・・・"となっているので
頭の6文字が合致したら、そのファイルを選択してくれるようにしたいです。
説明が下手で申し訳ありませんが、皆様のお知恵をお貸しください。
出来れば・・・ボタンを押すとリンクが貼ってないIDは、全てリンクがかかるようにもしたいのですが・・・。
欲張りを言って申し訳ありません。
宜しくお願いいたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
間違った説明:
>リンクをさせたいファイル名が"A-0001 aaaa・・・"となっているので
>頭の6文字が合致したら、そのファイルを選択してくれるようにしたいです。
本当のこと?:
そのファイルが入っている場所は、他のPC(ネットワークで繋がっています)の
>「専用」フォルダー⇒「2010年度」フォルダー⇒「A」フォルダー⇒「0001~0050」の中なのですが、
出来ていないことその1:
「Aフォルダの中の」という新しく出てきた部分が,マクロに書かれていないので書かないと出来ません。
出来てない上に謎のことその2:
「0001~0050」の中とは,Aフォルダの中に「0001~0050」という名前のフォルダがあって,その中に「BBB」というファイルが実はあるのか。
それとも
A-0001は,Aフォルダの中の0001フォルダの中に,「A-0001なんたらかんたら.doc」とかのファイル
B-0023ならBフォルダの中の0023フォルダの中に,「B-0023なんたらかんたら.xls」とかのファイル
がそれぞれ一個ずつ入っていると言いたかったのか。
次の前提で回答します。説明不足でまだ前提が間違っている部分は,回答を応用して少し自力で作成してみてください。
前提:
A列にA-0011のように記入されている
すると\\Sa01\専用\2010年度\A\0011\の中に「A-0011 なんたらかんたら.doc」あるいは「A-0011 なんたらかんたら.xls」のような名前のファイルが1個入っているので,それに向けてハイパーリンクを取り付けたい。
マクロの作成例:
sub macro1r1()
dim h as range
dim s as string
dim myPath as string
activesheet.hyperlinks.delete
for each h in range("A2:A" & range("A65536").end(xlup).row)
mypath = "\\Sa01\専用\2010年度\" & application.substitute(h, "-", "\") & "\"
s = dir(mypath & h & "*.*")
if s <> ""then
activesheet.hyperlinks.add anchor:=h, address:=mypath & s
end if
next
end sub
ご回答ありがとうございます。
説明不足で本当に申し訳ありませんでした。m(_ _;m)三(m;_ _)m
まだまだ説明不足のようなのですが、今回ご回答いただいたものを参考に少し自分で作成してみようと思います。
もし、試行錯誤の上行き詰ってしまったら、また質問させていただくかもしれませんが、
宜しくお願い致します。(o*。_。)o
【補足】
目的のファイル(例:『A-0001 何たらかんたら.doc』)が入っている場所:\\Sa01\専用\2010年度\A\0001~0050\ で
「0001~0050」フォルダーの中には、複数のファイルが入っています。
No.1
- 回答日時:
>頭の6文字が合致したら、そのファイルを選択してくれるようにしたいです。
つまりID(6文字)だけチェックすればよくて,B列にデータで入っている項目は関係ないのですね。
手順:
ALT+F11を押す
挿入メニューから標準モジュールを選ぶ
現れたシートに下記をコピー貼り付ける
sub macro1()
dim h as range
dim s as string
dim myPath as string
'ファイルの在処を下記に正しく記入すること
myPath = "C:\test\"
activesheet.hyperlinks.delete
for each h in range("A1:A" & range("A65536").end(xlup).row)
s = dir(mypath & h & "*.*")
if s <> ""then
activesheet.hyperlinks.add anchor:=h, address:=mypath & s
end if
next
end sub
ファイルメニューから終了してエクセルに戻る
オートシェイプの図形などでボタンの絵柄を作成してシート上に配置する。適当なリンクバナーの画像とかでも良い。
右クリックしてマクロの登録を開始し,さっき登録したMacro1を取り付ける
以上です。
この回答への補足
お世話になっております。
ご回答頂いたとおりにやってみたのですが・・・
ハイパーリンクがかかりません(T-T)エラーは、出ないのですが・・・。
VBAに書き込んだ文をそのまま書きます。
Sub macro1()
Dim h As Range
Dim s As String
Dim myPath As String
'ファイルの在処を下記に正しく記入すること
myPath = "\\Sa01\専用\2010年度\"
ActiveSheet.Hyperlinks.Delete
For Each h In Range("A1:A" & Range("A65536").End(xlUp).Row)
s = Dir(myPath & h & "*.*")
If s <> "" Then
ActiveSheet.Hyperlinks.Add anchor:=h, Address:=myPath & s
End If
Next
End Sub
ご回答頂いたものをコピーして貼付けただけなのですが・・・。(ファイルの在処のみ変更)
私の説明不足だと思いますので、もう一度詳しく説明させていただきます。
A列 B列 ・・・
A-0001 BBB
A-0002 BBB となっている一覧があります。
この一覧のA列に入っている"A-0001"をIDとして他のフォルダーにあるファイルをハイパーリンク設定したいです。
リンク先のファイル(殆どがwordかexcelです)は、"A-0001 資料1"のような名前になっています。
そのファイルが入っている場所は、他のPC(ネットワークで繋がっています)の「専用」フォルダー⇒「2010年度」フォルダー⇒「A」フォルダー⇒「0001~0050」の中なのですが、
IDが"B-0001"や"C-0001"と種類がたくさんあり、それ毎にVBAを組み直すのは、手間がかかってしまうので
「2010年度」フォルダーの中から探し当ててもらえると嬉しいです。出来ますでしょうか?
それから・・・もしリンクがかかったら、どこにかかるようになっているのでしょうか?(どこかのセル?)
無知で申し訳ありません(+_+;
お手数をお掛けして申し訳ありませんが、宜しくお願い致します。
初心者の私にも分かり易い丁寧なご回答ありがとうございますm(_ _)
初めてこの場で質問させて頂いたので、とても嬉しかったです(=⌒ー⌒=)
本当に感謝してます。
早速、教えて頂いた様にやってみます。
また結果をご報告致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) Excel ハイパーリンク設定について 教えてください 例なんですが、 VBAにてファイル1の列Gに 2 2022/11/04 17:52
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) Excel VBA 3 2023/04/22 10:46
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- その他(データベース) Excel VBA 転記について 1 2022/04/20 16:55
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】大変な警告
【大喜利】「今このパソコンは大変危険な状態です」という警告メッセージを無視してパソコンを開いたら、こんなことが起こった
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
あなたの「プチ贅沢」はなんですか?
お仕事や勉強などを頑張った自分へのご褒美としてやっている「プチ贅沢」があったら教えてください。
-
洋服何着持ってますか?
洋服を減らそうと思っているのですが、何着くらいが相場なのかわかりません。
-
思い出すきっかけは 音楽?におい?景色?
記憶をふと思い出すきっかけは 音楽、におい、景色 どれですか?
-
EXCEL VBA 別シートの同じ文字列へのリンク
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでセルに入力したパ...
-
excelに貼り付けた数値が勝手に...
-
VLOOKUP関数とネットワークに置...
-
ファイルを並び替えるときの「...
-
CSVで文字化けしてしまうのを直...
-
EXCEL VBA ー 同一フォルダ内の...
-
Teraマクロで日付ディレクトリ...
-
EXCELのVBAで画像を選んだ順に...
-
ハイパーリンクで前回値をひき...
-
Excelvbaで同一フォルダー内の...
-
VBAでFileDialogを利用してファ...
-
エクセル:フォルダ内のファイ...
-
Excel VBAで自動的にハイパーリ...
-
「やよいの青色申告」のファイ...
-
excel INDIRECT 他ファイル参照
-
ローマ字→カタカナへ変換(エク...
-
マクロ 実行ボタンを押さずに...
-
エクセルのマクロ機能で前のシ...
-
コマンドボタンを押すたびに大...
-
Excel:コマンドボタンの移動
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでセルに入力したパ...
-
excelに貼り付けた数値が勝手に...
-
EXCELのVBAで画像を選んだ順に...
-
Teraマクロで日付ディレクトリ...
-
VLOOKUP関数とネットワークに置...
-
エディタで効率的な切り出し方法
-
ハイパーリンクで前回値をひき...
-
ファイルを並び替えるときの「...
-
=CELL("filename")で取得したフ...
-
excel INDIRECT 他ファイル参照
-
Excelvbaで同一フォルダー内の...
-
PDF ファイルが開けません。
-
VBAでFileDialogを利用してファ...
-
エクセルからスキャナVBAで連動...
-
Excelでリンクを使用すると#N/A...
-
「やよいの青色申告」のファイ...
-
Excel VBAで自動的にハイパーリ...
-
エクセルファイルから指定した...
-
エクセルVBA+ADOで特定のCSVフ...
-
エクセルVBAでファイルを連...
おすすめ情報