Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3231 / 13646 ツリー ←次へ | 前へ→

【63435】ハイパーリンク設定セルをUserFormのコマンドボタンで対象ファイルを開く しゅん 09/11/3(火) 16:02 質問[未読]
【63436】Re:ハイパーリンク設定セルをUserFormのコ... arajin 09/11/3(火) 16:58 発言[未読]
【63437】Re:ハイパーリンク設定セルをUserFormのコ... しゅん 09/11/3(火) 17:59 お礼[未読]
【63438】Re:ハイパーリンク設定セルをUserFormのコ... arajin 09/11/3(火) 18:48 発言[未読]
【63439】Re:ハイパーリンク設定セルをUserFormのコ... しゅん 09/11/3(火) 20:33 お礼[未読]

【63435】ハイパーリンク設定セルをUserFormのコマ...
質問  しゅん  - 09/11/3(火) 16:02 -

引用なし
パスワード
   初めて質問させて頂きます。これまでは、ここの掲示板の内容を参照し、検証して少しずつVBAの楽しさがわかってきました。分かり辛い質問文で申し訳ありませんが以下に現在解決したい内容を書きましたのでご教授の程よろしくお願い致します。

WorkSheetのある列にハイパーリンク設定したセルがあります。
これをUserForm上のコマンドボタンから対象ファイルを開く様にしたいのですが、
FollowHyperlinkでのAddress、SubAddressの設定に問題がある様ですが解決方法解らずに困っています。

<環境>
XP(Home SP3)、EXCEL2003

<実現させたい機能>
ハイパーリンク設定セルをUserFormのコマンドボタンで対象ファイルを開く。

抜粋のソースは以下の通りです。
'標準モジュール
Public ws As Worksheet 
Public Path_in As String
Set ws = ThisWorkbook.Worksheets("データベース")



'UserForm
Private Sub CommandButton1_Click()
'----------------------------------
' ハイパーリンクファイル開く。
'----------------------------------
 path_out = ws.Cells(Row_Num,Col_Num).Value '例(2行目、9列)
 If (path_out <> "") Then
    ActiveWorkbook.FollowHyperlink Address:=path_out, _
    SubAddress:="", _
    NewWindow:=True
 End If

End Sub

上記のソースを使用したデバックで解ったことを以下に書きます。

<解決したい課題>
ハイパーリンク設定したセルの表示が以下の2ケースで動作が異なる。
1)TextToDisplayでファイル名等に変更表示されている。
2)フルパス表示(対象セルにはフルパスそのもののデータが書込まれている。)

上記の1)を採用したいのですがERRORになります。2)は問題なく開けますがセルの表示が長くなるため単にファイル名にしたい。

1)の場合、TextToDisplayで指定された表示のセルには、ワークシート上でEXCELのハイパーリンクの操作で設定されたアドレスにフルパスが設定があるはずで見かけ上表示文字列(TextToDisplay)がワークシート上表示されていると私は、考えていました。そこで私は、ws.cells(Row,colum).ValueをAddressに代入することで取得できると考えていましたが違うようです。ws.cells(Row,colum).ValueではTextToDisplayを取得して失敗している様です。ハイパーリンク設定され、表示がフルパス表示ではない場合のセルに保存されいるフルパスの情報をAddress/Subaddressに設定するにはどの様にすればできるのでしょうか?

【63436】Re:ハイパーリンク設定セルをUserFormの...
発言  arajin  - 09/11/3(火) 16:58 -

引用なし
パスワード
   設定した内容でそのまま開くなら、Followメソッドでいいのでは?

With ws.Cells(Row_Num,Col_Num).Hyperlinks
  If .Count = 0 Then
    MsgBox "ハイパーリンクが設定されてません"
  Else
    .Item(1).Follow
  End If
End With

もし、設定情報を加工の上、処理したいってことだったらすみません。

【63437】Re:ハイパーリンク設定セルをUserFormの...
お礼  しゅん  - 09/11/3(火) 17:59 -

引用なし
パスワード
   ▼arajin さん:
>設定した内容でそのまま開くなら、Followメソッドでいいのでは?
>
>With ws.Cells(Row_Num,Col_Num).Hyperlinks
>  If .Count = 0 Then
>    MsgBox "ハイパーリンクが設定されてません"
>  Else
>    .Item(1).Follow
>  End If
>End With
>
>もし、設定情報を加工の上、処理したいってことだったらすみません。

arajinさん

早々の返信有難う御座います。Followメソッドも一度は検討したのですが、ワークシートの対象セルの表示をファイル名等の表示に変更したいのは、単にフルパス状態をすっきりさせたいだけなのですが、Helpを読んで見たのですが、ワークシート上のメニュ操作でハイパーリンクを設定する際に、設定ウインドウが表示され上部に表示文字列(TextToDisplay)と下部にアドレス(Address)がデフォルトで同じ設定になって現れます。ここでTextToDisplayを編集することが出来ますし、ワークシート上のセルには、TextToDisplayの表示内容になります。このセルにカーソルをもって行くと数式バーにはやはり、TextToDisplayの内容が表示されます。この状態の場合、今回のERRORとなりました。フルパスのアドレスはどうやって呼び出せばよいのかがわからなくなり今回の質問となりました。
arajinさん、このパイパーリンクの構造をご教授頂けないでしょうか。

【63438】Re:ハイパーリンク設定セルをUserFormの...
発言  arajin  - 09/11/3(火) 18:48 -

引用なし
パスワード
   >arajinさん、このパイパーリンクの構造をご教授頂けないでしょうか。
そんなたいそうなことは私にはわかりませんので、識者の回答を待ちましょう。

一般操作でセルに、あるハイパーリンクを設定してあった時に、
呼び出すのなら、Followで行けると思った発言でした。

ただ、上での説明が今一飲み込めてないのですが、
一般操作で設定したハイパーリンクの表示文字を変更したりしてる内に、
ファイルのフルパス等がわからなくなったってことなんですかね?
確かに、Hyperlinkのどのプロパティにフルパスなどの情報が格納されてるのかは
私も分かりませんでしたが、セル上の表示文字を変更しようともこちらでは、
Followで目的のファイルが開いたんですけどね。

【63439】Re:ハイパーリンク設定セルをUserFormの...
お礼  しゅん  - 09/11/3(火) 20:33 -

引用なし
パスワード
   arajinさん
返事が遅くなりました。一生懸命参考書とHELPを再度読み直したりしているうちに
今になってしましまいした。申し訳けありません。
きっかけは、娘が私が作ったマクロを使用してパス表示が気に入らなかったらしく
セル表示を変更した後開けなくなったということでした。
FollowHyperlink にこだわっていましたが、arajinさんの提案の
Followメソッドを使用した方法が一番早い解決策のようです。

有難う御座いました。

3231 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free