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も見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
Excelのハイパーリンクにマクロを割り当てる方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでセルに入力したパ...
-
excelに貼り付けた数値が勝手に...
-
EXCELのVBAで画像を選んだ順に...
-
Teraマクロで日付ディレクトリ...
-
VBAでFileDialogを利用してファ...
-
ファイルを並び替えるときの「...
-
ローマ字→カタカナへ変換(エク...
-
Excel:コマンドボタンの移動
-
エラーになってないのにVBA...
-
複数ファイルにある特定のシー...
-
押したボタンの位置取得(共通の...
-
コマンドボタンを押すたびに大...
-
マクロ 実行ボタンを押さずに...
-
EXCELのセルへ、デジタル時計を...
-
Excel VBA のdebug(F8キー) が...
-
ワードからエクセルへ貼り付け...
-
エクセルVBAでOptionButtonのオ...
-
Excel VBA --- コマンドボタ...
-
スクロールしてもボタンを常に...
-
エクセル グラフの軸の最小値最...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでセルに入力したパ...
-
excelに貼り付けた数値が勝手に...
-
Teraマクロで日付ディレクトリ...
-
EXCELのVBAで画像を選んだ順に...
-
VLOOKUP関数とネットワークに置...
-
ファイルを並び替えるときの「...
-
エクセルからスキャナVBAで連動...
-
エディタで効率的な切り出し方法
-
=CELL("filename")で取得したフ...
-
excel INDIRECT 他ファイル参照
-
エクセル 一括リンクの解除
-
CSVで文字化けしてしまうのを直...
-
ハイパーリンクで前回値をひき...
-
【マクロ】2回実行したら、エ...
-
Excelvbaで同一フォルダー内の...
-
VBAでFileDialogを利用してファ...
-
Excelのマクロを実行しても、エ...
-
パッチ当てしてくれるフリーソ...
-
PDF ファイルが開けません。
-
パス名を参照するコードのファ...
おすすめ情報