- ベストアンサー
VBでハイパーリンクのファイル拡張子毎に起動アプリを設定したい。
VBでハイパーリンクのファイル拡張子毎に起動アプリを設定したい。 VBでアプリを作成中です。以下の二つ教えてください 1.EXCELでハイパーリンクの画像ファイル(JPGファイル)をクリックしたとき、常にMICROSOFT OFFICE PICTURE MANAGER(他の画像ビューアではなく)が起動するよう設定するVBプログラム。 ただしEXCELが終了すれば設定は元に戻すようにしたい。 2.MICROSOFT OFFICE PICTURE MANAGERにカスタムボタンを追加することはできるでしょうか。 とりあえず終了ボタンを追加したい。 以上よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
VBの質問であるのは認識した上で >エクセルVBAレベルでのはなしで >ハイパーリンクの画像ファイル(JPGファイル)をクリックしたとき・・ と言うことは、そういうイベントが捉えられる必要がある。それらしきイベントに、シートのイベントで Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) MsgBox "aaa" End Sub がある。しかしBeforeHyperLink・・でないので、画像を表示したあとにメッセージが現れる。と言うことは、このケースでは、事前に手の打ちようが無い。 OSのウィンドウズの現拡張子によって、「開く」ソフトが決る仕組みが優先されることになる。 ーー エクセルVBAで使える通常の機能出出来ないなら、VBでやるしかない。 これもVBと言うよりウインドウズの絡みのプログラムの話だ。 プロ的な話題で、長らくこのコーナーを見ているが、この質問コーナーのレベルを超えていると思う。 そういうプロ同士のサイトはないのかな。 ーー プログラムによる関連付けの変更だが、Googleで「VB 関連付け」で照会し http://okwave.jp/qa/q160153.html ほか、記事を読んでみたら。 APIもなく、レジストリの変更と言っているが。 == 2。の質問は、自作以外の、他人が作った出来合いのソフトがあって、それに手を加えるなんて、原則不可能だ。 例外的に、VBAやマクロのような仕組みをソフト作成者が用意している場合やそれ(VBAなど)らでソフトを作っている場合でソースを見られるようにしている(オフィスの一部とCADソフトの一部などあるようだ)は別として。 こんなことは、質問内容のレベルのことを考える人なら、判りそうなものだと思うが。 ソフトは 99%のソフトのソースは公開されていないので手を加えられない。 走り出したら一気に実行され介入の余地なし。イベントのような、コントロールをユーザーに渡してくれる機会なし。 だから。
その他の回答 (1)
- buraigasho
- ベストアンサー率78% (32/41)
画像(JPEGやJPG、GIF、PNGなど)を開くアプリをPictureManagerにしておけば良いのではないでしょうか。 若しくは、「ExcelVBAで外部アプリを開く」で検索すると色々でますよ。 2のカスタムボタンの追加はアプリケーション自体に追加ですか?それでしたら、難しいです。VBAではできないでしょう。。。
お礼
有難うございます。 もちろんexplorerを設定して画像(JPEGやJPG、GIF、PNGなど)を開くアプリをPictureManagerにしておけばPictureManagerが起動するのは分かっているのですが、これだと私の作成した社内共有アプリを使うために各ユーザの環境を個別に変えなければなりません。これだとユーザから色々と不平不満が出てきそうなのでそのようなやり方はなるべく回避したい(ユーザの環境を私の都合で勝手に変えたくない)、そして私のアプリの中でこの問題を解消したいという状況があります。
お礼
なるほど1.も2.も簡単ではなく相当にハードな要求であることよく分かってまいりました。 それならそれでいいんです。 他のユーザのレジストリを書き換えるなんてことは絶対やってはいけないことと心得ています。 なので無理して考えることもないということで。 有難うございました。