Excel VBA質問箱 IV

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

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


1180 / 13645 ツリー ←次へ | 前へ→

【75819】ブックの共有時のハイパーリンク使用2 ゆーあ 14/7/10(木) 16:58 質問[未読]
【75821】Re:ブックの共有時のハイパーリンク使用2 独覚 14/7/11(金) 9:22 発言[未読]
【75823】Re:ブックの共有時のハイパーリンク使用2 ゆーあ 14/7/11(金) 9:38 発言[未読]
【75822】Re:ブックの共有時のハイパーリンク使用2 γ 14/7/11(金) 9:27 発言[未読]
【75824】Re:ブックの共有時のハイパーリンク使用2 ゆーあ 14/7/11(金) 9:44 発言[未読]
【75828】Re:ブックの共有時のハイパーリンク使用2 ゆーあ 14/7/11(金) 14:50 発言[未読]
【75829】Re:ブックの共有時のハイパーリンク使用2 独覚 14/7/11(金) 15:27 発言[未読]
【75830】Re:ブックの共有時のハイパーリンク使用2 ゆーあ 14/7/11(金) 16:31 お礼[未読]
【75832】Re:ブックの共有時のハイパーリンク使用2 ゆーあ 14/7/11(金) 18:10 発言[未読]

【75819】ブックの共有時のハイパーリンク使用2
質問  ゆーあ  - 14/7/10(木) 16:58 -

引用なし
パスワード
   WinXP Excel2000

先日お教え頂き、ブックの共有を行った状態で、
HYPERLINK関数を使用し、JPGファイルを開くことが出来たのですが、
今回、同様のコードでxlsファイルを開こうと思ったのですが、上手くいきません。
下記に、コードを記載致しますので、
ご教授の程、宜しくお願い致します。


セルC1に、xlsファイルのパス名があり、
セルF1のHYPERLINK関数を使用して、C1を参照しファイルを開いてます。
Private Sub CommandButton6_Click()
Dim ACR As Long
Dim WK_Link As String
Dim WSH
  Worksheets("Sheet5").Activate
  ACR = ActiveCell.Row
  Cells(ACR, 6).Select
  ActiveCell.FormulaR1C1 = "=HYPERLINK(RC[-3],RC[-3])"
  
  WK_Link = Cells(ACR, 6).Value
  If Cells(ACR, 3) = "" Then
  Cells(ACR, 3).ClearContents
  Exit Sub
  End If
  Set WSH = CreateObject("Wscript.Shell")
  WSH.Run """" & WK_Link & """", 3
  Set WSH = Nothing
  
  Worksheets("Sheet1").Select
End Sub

【75821】Re:ブックの共有時のハイパーリンク使用2
発言  独覚  - 14/7/11(金) 9:22 -

引用なし
パスワード
   ▼ゆーあ さん:
>WinXP Excel2000
>
>先日お教え頂き、ブックの共有を行った状態で、
>HYPERLINK関数を使用し、JPGファイルを開くことが出来たのですが、
>今回、同様のコードでxlsファイルを開こうと思ったのですが、上手くいきません。

こういう場合にはどのような状況になるのかを書いてね。

私のところではゆーあさんのマクロで共有状態でEXCELが開かれてます。

なので開かれない時に何かメッセージがないのか、等が問題の解決につながる可能性があります。

で、開くファイルがEXCELのブック限定だったら
Set WSH = CreateObject("Wscript.Shell")
WSH.Run """" & WK_Link & """", 3
Set WSH = Nothing
の代わりに
Workbooks.Open WK_Link
でもいいのでは?

あと、

>  If Cells(ACR, 3) = "" Then
>  Cells(ACR, 3).ClearContents
>  Exit Sub
は式をクリアするところなんで
>  Cells(ACR, 3).ClearContents

>  Cells(ACR, 6).ClearContents
じゃないかな?

【75822】Re:ブックの共有時のハイパーリンク使用2
発言  γ  - 14/7/11(金) 9:27 -

引用なし
パスワード
   うまくいかない、だけだと説明不足です。
エラーがでるなら何というメッセージなのか、想定と違うならその説明を。

(1)WK_Link の内容を確認する。
(2)Workbooks.Open WK_Link は動作するか確認する。
(3)共有でない普通のブックで、
  WSH.Run """" & WK_Link & """", 3
  が動作するか確認する。
といったことを実行してみては?

【75823】Re:ブックの共有時のハイパーリンク使用2
発言  ゆーあ  - 14/7/11(金) 9:38 -

引用なし
パスワード
   ▼独覚 さん

コメントありがとうございます。
並びに、またまた申し訳御座いません。

又、状況も説明不足ですみません。
状況としは、メッセージ等の表示は無く、フリーズします。
多分、バックグラウンドで何らかの処理は動いており、
その処理間フリーズし、処理後何も起きないまま操作可能になります。

尚、開くファイルは、
エクセルとPDFになります。
PDFですと、お教え頂いたコードで問題なく開きますので、無視してました。


あとご指摘頂いた、
>  Cells(ACR, 3).ClearContents
>を
>  Cells(ACR, 6).ClearContents
>じゃないかな?
は、仰る通り間違いでした。。。
ありがとうございます。

【75824】Re:ブックの共有時のハイパーリンク使用2
発言  ゆーあ  - 14/7/11(金) 9:44 -

引用なし
パスワード
   ▼γ さん

コメントありがとうございます。

>うまくいかない、だけだと説明不足です。
>エラーがでるなら何というメッセージなのか、想定と違うならその説明を。
すみません。
状況としは、メッセージ等の表示は無く、フリーズします。
多分、バックグラウンドで何らかの処理は動いており、
その処理間フリーズし、処理後何も起きないまま操作可能になります。

>(1)WK_Link の内容を確認する。
>(2)Workbooks.Open WK_Link は動作するか確認する。
>(3)共有でない普通のブックで、
>  WSH.Run """" & WK_Link & """", 3
>  が動作するか確認する。
>といったことを実行してみては?
ありがとうございます!
今から試してみます!!

【75828】Re:ブックの共有時のハイパーリンク使用2
発言  ゆーあ  - 14/7/11(金) 14:50 -

引用なし
パスワード
   お世話様です。
HYPERLINK関数を使用し、xlsファイルを開く件ですが、
お教え頂いた下記コードに、Unload UserForm2を追加すると、
xlsファイルが開けることが確認出来ました。

>Private Sub CommandButton6_Click()
>Dim ACR As Long
>Dim WK_Link As String
>Dim WSH
>  Worksheets("Sheet5").Activate
>  ACR = ActiveCell.Row
>  Cells(ACR, 6).Select
>  ActiveCell.FormulaR1C1 = "=HYPERLINK(RC[-3],RC[-3])"
>  
>  WK_Link = Cells(ACR, 6).Value
>  If Cells(ACR, 3) = "" Then
>  Cells(ACR, 3).ClearContents
>  Exit Sub
>  End If
>  Set WSH = CreateObject("Wscript.Shell")
>  WSH.Run """" & WK_Link & """", 3
>  Set WSH = Nothing
   Unload UserForm2  ←追加
>  Worksheets("Sheet1").Select
>End Sub

ですが、
出来ればUser Form2を消さず、また、
User Form2を表示させずに、開いたxlsファイルを
表示する方法は御座いますでしょうか?
(もとのファイルをマウスで選択しアクティブにすると、
画面上にUser Form2は表示されている)

現状、開いたxlsファイル画面上に、User Form2(& User Form1)が
表示されております。
これを消してしまうと、もとのファイルから、User Form1を呼び出し、
User Form1で検索をし、データ表示を行い、
User Form1上にある、User Form2を呼び出すコマンドボタンを押し・・・
っと、かなり手間が増えてしまいます。
どうか宜しくお願い致します。

【75829】Re:ブックの共有時のハイパーリンク使用2
発言  独覚  - 14/7/11(金) 15:27 -

引用なし
パスワード
   ▼ゆーあ さん:
>お世話様です。
>HYPERLINK関数を使用し、xlsファイルを開く件ですが、
>お教え頂いた下記コードに、Unload UserForm2を追加すると、
>xlsファイルが開けることが確認出来ました。

ユーザーフォームがあったんですね。
このユーザーフォームはモーダルモードで開かれているのでしょうか?
もしそうであればモードレスフォームで開くとどうなるでしょうか?
(EXCELは開けても他に影響があるかもしれません)

あと、ハイパーリンク先のEXCELはマクロを実行したEXCELで開かれる必要があるのでしょうか?
新しいEXCELを開いてそちらで開いてもいいのであれば

  Dim XLApp As Excel.Application

  Set XLApp = CreateObject("Excel.Application")
  XLApp.Workbooks.Open WK_Link
  XLApp.Visible = True
  Set XLApp = Nothing
で開いてみてはどうでしょうか?
ただし上記で開けるのはエクセルブックのみなので拡張子をチェックしてエクセルブックならば上記で、エクセルブック以外は
WSH.Run """" & WK_Link & """", 3
で開くようにする必要があります。

【75830】Re:ブックの共有時のハイパーリンク使用2
お礼  ゆーあ  - 14/7/11(金) 16:31 -

引用なし
パスワード
   ▼独覚 さん

コメントありがとうございます。
実は、User Formがあったんですよ。
特に必要が無い情報かと勝手に判断してました。すみません。。。

>ユーザーフォームがあったんですね。
>このユーザーフォームはモーダルモードで開かれているのでしょうか?
>もしそうであればモードレスフォームで開くとどうなるでしょうか?
>(EXCELは開けても他に影響があるかもしれません)
すみません。。。
モーダルモード及びモードレスフォームという言葉自体知らないんです。
調べてみます。。。


>あと、ハイパーリンク先のEXCELはマクロを実行したEXCELで開かれる必要があるのでしょうか?
>新しいEXCELを開いてそちらで開いてもいいのであれば
>
>  Dim XLApp As Excel.Application
>
>  Set XLApp = CreateObject("Excel.Application")
>  XLApp.Workbooks.Open WK_Link
>  XLApp.Visible = True
>  Set XLApp = Nothing
>で開いてみてはどうでしょうか?
これも、私には意味がよく分かりません。すみません。。。
ですが、お教え頂いたコードを早速使わせて頂いたら、
イメージ通りの動作が確認できました!ありがとうございます!!


>ただし上記で開けるのはエクセルブックのみなので拡張子をチェックしてエクセルブックならば上記で、エクセルブック以外は
>WSH.Run """" & WK_Link & """", 3
>で開くようにする必要があります。
これも私には荷が重い感じです。
If文を使うのかな?くらいのレベルです。。。


PDFが開けないのは少し心残りですが、
ここまで希望の動作が出来ましたので、充分過ぎるほど満足してます。
本当にありがとうございます!!!大変感謝です!!!
もっと勉強します!!!

【75832】Re:ブックの共有時のハイパーリンク使用2
発言  ゆーあ  - 14/7/11(金) 18:10 -

引用なし
パスワード
   ▼独覚 さん

>ただし上記で開けるのはエクセルブックのみなので拡張子をチェックしてエクセルブックならば上記で、エクセルブック以外は
>WSH.Run """" & WK_Link & """", 3
>で開くようにする必要があります。
頑張ってみました!!

Dim ACR As Long
Dim WK_Link As String
Dim WSH
Dim XLApp As Excel.Application

  Worksheets("Sheet5").Activate
  ACR = ActiveCell.Row
  Cells(ACR, 6).Select
  ActiveCell.FormulaR1C1 = "=HYPERLINK(RC[-5],RC[-5])"
  
  WK_Link = Cells(ACR, 6).Value
  If Cells(ACR, 1) = "" Then
  Cells(ACR, 6).ClearContents
  Exit Sub
  End If
  If Right(WK_Link, 3) = "xls" Then
  Set XLApp = CreateObject("Excel.Application")
  XLApp.Workbooks.Open WK_Link
  XLApp.Visible = True
  Set XLApp = Nothing
  Else
  If Right(WK_Link, 3) = "pdf" Then
  Set WSH = CreateObject("Wscript.Shell")
  WSH.Run """" & WK_Link & """", 3
  Set WSH = Nothing
  End If
  End If
Worksheets("Sheet1").Select

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