[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『フォームでファイルパスを取得して、セルにハイパーリンクで貼り付けたい』(初心者です)
お疲れ様です。
sheet1のA列にファイル名、B列をリンクとしています。
フォームでファイルパスを取得して、登録ボタンでセルに張り付けると文字列になってしまいます。そのセルを一旦、ダブルクリックするとハイパーリンクになるのですが...
調べるとハイパーリンク関数を使用すればできるようですが、どのように使用すればよいかわかりません。
フォームには以下のコードを記述しています。
Private Sub 登録_Click()
Dim lastRow As Long With Worksheets("sheet1") lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 .Cells(lastRow, 1) = ファイル名.Text .Cells(lastRow, 2) = リンク.Text
End With Unload Me End Sub
Private Sub リンク登録_Click()
Dim strFilePath As Variant strFilePath = Application.GetOpenFilename()
'ファイルが正しく選択されたら ファイル名をテキストボックスに表示 If strFilePath <> "False" Then リンク.Value = strFilePath
End If End Sub
初歩的な質問で申し訳ありませんが、よろしくお願い致します。
< 使用 Excel:Excel2010、使用 OS:unknown >
とりあえず、ハイパーリンクでファイルを選択するのをマクロ記録した方が良いよ。 (BJ) 2019/06/23(日) 05:28
検索のお手伝い。
https://www.moug.net/tech/exvba/0050064.html
http://excel.style-mods.net/tips_vba/tips_vba_2_26.htm
https://www.sejuku.net/blog/68338
(もこな2) 2019/06/23(日) 08:12
返信ありがとうございます。
マクロ記録の事を初めて知りました。初心者がすぎてすいません。
しかし、ハイパーリンクをマクロ記録してコードを表示して確認できました。
表示されたコードのaddressに変数を割り当てればよかったのでしょうか?
いろいろ試してみましたが、分かりませんでした。
マクロ記録でコードを確認できることを知り勉強になりました。
ありがとうございます。
(初心者です) 2019/06/23(日) 21:20
返信ありがとうございます。
上記の3つ目リンク先のサンプルコードを参考にさせていただきました。
複数セルではなく、1つのセルに実行したかったので、繰り返し処理が必要ないと思い、以下の様にしました。
Private Sub 登録_Click()
Dim lastRow As Long Dim hyplink As Hyperlink
With Worksheets("sheet1") lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 .Cells(lastRow, 1) = ファイル名.Text .Cells(lastRow, 2) = リンク.Text
If Cells(lastRow, 2).Value <> "" Then Set hyplink = ActiveSheet.Hyperlinks.Add(Anchor:=Cells(lastRow, 2), _ Address:=Cells(lastRow, 2)) End If End With Unload Me End Sub
そして、値が入ってない場合としてIf文を入れてみました。一応、動作は良好ですが、この記載方法で合っていますでしょうか?よろしければ確認をお願い致します。
(初心者です) 2019/06/23(日) 21:27
Private Sub 登録_Click() Dim MyRNG As Range
With Worksheets("sheet1") Set MyRNG = .Cells(.Rows.Count, 1).End(xlUp).Offset(1)
MyRNG.Value = ファイル名.Text MyRNG.Offset(, 1).Value = リンク.Text
If リンク.Text <> "" Then .Hyperlinks.Add Anchor:=MyRNG.Offset(, 1), Address:=リンク.Text End If End With
Unload Me End Sub
※未テストなのでミスっていたらごめんなさい。
(もこな2) 2019/06/24(月) 05:48
返信遅れまして申し訳ありません。
記載いただいたコード問題なく動作しました。活用させて頂きます。
最終行取得のoffsetの使用方法、Setを使用した変数の代入等、勉強になりました。
ありがとうございました。
(初心者です。) 2019/06/25(火) 14:36
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.