Excel VBA質問箱 IV

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

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


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

【13480】ハイパーリンク呼び出しについて Kaz 04/5/6(木) 14:07 質問[未読]
【13491】Re:ハイパーリンク呼び出しについて IROC 04/5/6(木) 15:54 回答[未読]
【13492】Re:ハイパーリンク呼び出しについて Kaz 04/5/6(木) 16:10 発言[未読]
【13493】Re:ハイパーリンク呼び出しについて IROC 04/5/6(木) 16:19 回答[未読]
【13497】Re:ハイパーリンク呼び出しについて Kaz 04/5/6(木) 17:06 発言[未読]
【13498】Re:ハイパーリンク呼び出しについて IROC 04/5/6(木) 17:15 回答[未読]
【13500】Re:ハイパーリンク呼び出しについて Kaz 04/5/6(木) 17:40 発言[未読]
【13501】Re:ハイパーリンク呼び出しについて IROC 04/5/6(木) 17:52 回答[未読]
【13504】Re:ハイパーリンク呼び出しについて Kaz 04/5/6(木) 18:25 発言[未読]
【13520】Re:ハイパーリンク呼び出しについて IROC 04/5/7(金) 9:22 回答[未読]
【13528】Re:ハイパーリンク呼び出しについて Kaz 04/5/7(金) 9:56 発言[未読]
【13529】Re:ハイパーリンク呼び出しについて IROC 04/5/7(金) 10:10 回答[未読]
【13532】Re:ハイパーリンク呼び出しについて Kaz 04/5/7(金) 10:16 発言[未読]
【13537】Re:ハイパーリンク呼び出しについて IROC 04/5/7(金) 10:24 回答[未読]
【13538】Re:ハイパーリンク呼び出しについて Kaz 04/5/7(金) 10:32 発言[未読]
【13539】Re:ハイパーリンク呼び出しについて IROC 04/5/7(金) 10:44 回答[未読]
【13545】Re:ハイパーリンク呼び出しについて Kaz 04/5/7(金) 11:05 発言[未読]
【13548】Re:ハイパーリンク呼び出しについて Kaz 04/5/7(金) 11:39 発言[未読]
【13549】Re:ハイパーリンク呼び出しについて IROC 04/5/7(金) 11:47 回答[未読]
【13552】Re:ハイパーリンク呼び出しについて Kaz 04/5/7(金) 12:25 お礼[未読]

【13480】ハイパーリンク呼び出しについて
質問  Kaz  - 04/5/6(木) 14:07 -

引用なし
パスワード
   以下のようなEXCELのブック2つがあります。
Book1.xls
 あるセルには、Book2.xlsを呼び出すハイパーリンクが設定されている。
Book2.xls
 マクロにより印刷プレビューが表示される様になっている。

希望としては、Book1の所定セルをクリックでBook2をプレビュー表示し、プレビュー
終了ボタン押下でBook1に戻って欲しいのですが、現在の動きとしては、Book1に
戻った時に以下のメッセージが表示されます。
”book2.xlsを開いています。ファイルには、ウィルスや、〜省略〜 このファイルを開きますか?”
OK,CANCELで、OK押下でハングします。
そもそも、このメッセージ自体、Book2を再度起動しに行っている様で、必要ないものです。

book2の印刷プレビュー終了時の処理は以下の通りとしています。

  With Application
    .DisplayAlerts = False
    .ScreenUpdating = True
  End With
  ThisWorkbook.Close

動作環境はWindowsXP,EXCEL2002 SP2です。
どなたかよい方法を知りませんか。

【13491】Re:ハイパーリンク呼び出しについて
回答  IROC  - 04/5/6(木) 15:54 -

引用なし
パスワード
   Book1.xls にマクロは書かないで、
Book2.xls にだけマクロを書くのですか?

それとも book1にマクロを書いても良いですか?

【13492】Re:ハイパーリンク呼び出しについて
発言  Kaz  - 04/5/6(木) 16:10 -

引用なし
パスワード
   Book1、Book2での環境はテスト環境であり、
実際には、Book2のような構造のEXCELファイルが
たくさんあって、それを目次(Book1に相当)から
呼び出したいのです。
現在の構造ではBook2のみマクロが書いてあります。
というか目次ファイル(Book1)は作成段階なので、
実際には、必ずしも、EXCELファイルでなくとも、
良いのです。リンクをクリックして、それに相当
するEXCELのプレビューが表示されるという動作が
正常に実行されれば。
WORDやHTMLからの呼び出しも試しましたがうまく
行きませんでした。
ということでBook1にマクロを書いてもOKです。
できるだけ簡単にできる方法が良いです。

【13493】Re:ハイパーリンク呼び出しについて
回答  IROC  - 04/5/6(木) 16:19 -

引用なし
パスワード
   Book2のマクロは、どのようなものでしょうか?
OPENイベントのマクロですか?

BOOK1にマクロを書くとすれば、
BOOK2のそれらのマクロは削除してしまっても構わないのでしょうか?

【13497】Re:ハイパーリンク呼び出しについて
発言  Kaz  - 04/5/6(木) 17:06 -

引用なし
パスワード
   申し訳ありません。マクロについての基本的な事が分かっていません。
(ここで言う基本的というレベルについては、Visual Basicに関しては理解できています。)
VBはある程度分かっているけど、EXCEL等のマクロはほとんど操作すらしたことがないという前提で話していただいてかまいません。

Book2のVisual Basic EditorというものでVBのソースのようなものを見ると、標準モジュールにAuto_Openというプロシージャがあるのみで、そこで前述のプレビュー等の記述があります。

【13498】Re:ハイパーリンク呼び出しについて
回答  IROC  - 04/5/6(木) 17:15 -

引用なし
パスワード
   Auto_Openのマクロは、ブックを開くと実行される
イベントマクロです。

なので、そのマクロがある限り
BOOK1にマクロを書いても無駄でしょう。

BOOK2自体を直接開くときに、
現在のAuto_Openのマクロは必要なのでしょうか?
もし必要ないなら、それらのマクロはすべて削除して、

>Book2のような構造のEXCELファイルがたくさんあって、
ということですし、

Book1に新たにマクロを作って
対応した方が簡単だと思います。

【13500】Re:ハイパーリンク呼び出しについて
発言  Kaz  - 04/5/6(木) 17:40 -

引用なし
パスワード
   希望としては、BOOK2単体で実行した時もBOOK1から呼び出した時も
自動的にプレビューを行いたいのです。
不可能なのでしょうか?

また、はじめの質問に書いた現象である、Book2のプレビューを閉じた時に
メッセージが表示される現象は、当然の動作なのでしょうか?
マクロの記述に、初めはApplication.Quitを入れてましたが、それだと
BOOK1も閉じてしまうのです。

>Book1に新たにマクロを作って
>対応した方が簡単だと思います。
不可能であれば、このように対応したいと思います。

【13501】Re:ハイパーリンク呼び出しについて
回答  IROC  - 04/5/6(木) 17:52 -

引用なし
パスワード
   >希望としては、BOOK2単体で実行した時もBOOK1から呼び出した時も
>自動的にプレビューを行いたいのです。
>不可能なのでしょうか?

book2 のマクロを生かしたいのであれば、
まずは、すべてのマクロコードをお教え下さい。


>>また、はじめの質問に書いた現象である、Book2のプレビューを閉じた時に
>メッセージが表示される現象は、当然の動作なのでしょうか?

excel と os のバージョンを教えて下さい。

【13504】Re:ハイパーリンク呼び出しについて
発言  Kaz  - 04/5/6(木) 18:25 -

引用なし
パスワード
   >まずは、すべてのマクロコードをお教え下さい。
以下が標準モジュールに記述してあるのみ。
--------------------------------------------
Option Explicit

Sub Auto_Open()
  
  ' 画面表示の更新の設定
  Application.ScreenUpdating = False
  
  ' シートの表示
  ThisWorkbook.Activate
  ' プレビュー
  ActiveWindow.SelectedSheets.PrintPreview

  ' プレビュー後、上書きせずにExcelを終了する
  With Application
    .DisplayAlerts = False ' 上書き禁止
    .ScreenUpdating = True ' 画面表示の更新の設定
    '.Quit          ' 終了
  End With
  ThisWorkbook.Close

End Sub
--------------------------------------------
>excel と os のバージョンを教えて下さい。
一番最初の質問に記載しております。

【13520】Re:ハイパーリンク呼び出しについて
回答  IROC  - 04/5/7(金) 9:22 -

引用なし
パスワード
   >メッセージが表示される現象は、当然の動作なのでしょうか?

当方の win98se,Excel2000 では、再現されませんでした。。。(-_-;)

【13528】Re:ハイパーリンク呼び出しについて
発言  Kaz  - 04/5/7(金) 9:56 -

引用なし
パスワード
   私の別環境(Win2000,Excel2000)では別の現象として以下の通りと
なります。

Book2のプレビューを終了して、Book1に戻ってきたとき、エラーは
発生しないが、マウスポインタが砂時計になったまま。
その後、Book1上の同一のハイパーリンクのセルを選択して再度
Book2をプレビューしようとしても、反応しない。

現象としては異なるのですが、いずれにしても正しく動作しているとは
言えません。
IROC さんの環境では正しく動作しているのでしょうか?
Book1から何度かBook2をプレビューしたり閉じてみたりして
試してもらえませんか。

【13529】Re:ハイパーリンク呼び出しについて
回答  IROC  - 04/5/7(金) 10:10 -

引用なし
パスワード
   >試してもらえませんか。

book1 →ハイパーリンクでbook2をひらく。

book2が開かれるときに 「マクロの有効/無効」のメッセージが表示。
マクロを有効にすると、プレビュー表示。閉じると、ブックも閉じる。

book1 が表示されると、何故か再度、「マクロの有効/無効」のメッセージが表示。
マクロを有効にすると、プレビュー表示。閉じると、ブックも閉じる。

のようにやはりおかしいです。
何故か、1回のハイパーリンク・クリックで、
2回ブックを開いてしまいます。


ハイパーリンクを使わないで、 book1 に ブックを開くマクロを
作れば、上手く行くかもしれません・・。

ハイパーリンクしているブックの book1 と book2 の
フォルダの位置関係は どのようになっていますか?
同一フォルダでしょうか?

【13532】Re:ハイパーリンク呼び出しについて
発言  Kaz  - 04/5/7(金) 10:16 -

引用なし
パスワード
   >同一フォルダでしょうか?
同一フォルダです。そうしなければいけない理由はないのですが。

【13537】Re:ハイパーリンク呼び出しについて
回答  IROC  - 04/5/7(金) 10:24 -

引用なし
パスワード
   >そうしなければいけない理由はないのですが。

これはどのような意味でしょうか?

ぜんぜん別のパスにあるファイルを指定することもあるということでしょうか?

もし、同一フォルダのファイルだけが対象であれば、
シート上にはブック名だけ書いておけば、処理できます。

しかし、いろいろなパスのファイルが対象となると、
各ファイルのパスを記述する必要があります。

その場合、BOOK1のシートのレイアウトは、たとえば、

  A      B
1 パス    ファイル名
2 c:\     aaa.xls
3 c:\test\   bbb.xls
4 d:\     ccc.xls

のように、する必要があります。

【13538】Re:ハイパーリンク呼び出しについて
発言  Kaz  - 04/5/7(金) 10:32 -

引用なし
パスワード
   >これはどのような意味でしょうか?
パスを同一フォルダにしないことによって正常動作するので
あれば、別フォルダにしてもかまわないという意味です。
現状では、全て同一フォルダで作業する予定です。
それ以上の意味はありません。

ハイパーリンクでの呼び出しが無理であれば、book1にマクロを
記述して呼び出す方法やその他でも、とにかく作業時間ができるだけ
かからない方法があればと思います。
それがマクロなのであれば、マクロの記述を簡単に教えてもらえませんか?

【13539】Re:ハイパーリンク呼び出しについて
回答  IROC  - 04/5/7(金) 10:44 -

引用なし
パスワード
   book1 のA列に

book2.xls

のようにファイル名を入力しておき、

ALT+F11キーで、VBEを起動し、プロジェクトウィンドウのSheet1 に、
以下のコードをコピペしてください。

そうすると、sheet1のA列に対し、
ダブルクリックイベントが実行されます。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Target.Column <> 1 Or Target.Value = "" Then Exit Sub
  
    Cancel = True
    Workbooks.Open Target.Value
  
End Sub

【13545】Re:ハイパーリンク呼び出しについて
発言  Kaz  - 04/5/7(金) 11:05 -

引用なし
パスワード
   この方法を試して見ました。

質問1.
book1に記述するファイル名(book2)は、フルパス指定しないと
動きません。
book1とbook2を同一フォルダにおくとして、VBの"app.path"の様な
ものがあればよいのですが。

質問2.
book2を呼び出した時、自動的にプレビュー表示をしてくれません。

【13548】Re:ハイパーリンク呼び出しについて
発言  Kaz  - 04/5/7(金) 11:39 -

引用なし
パスワード
   パスについては、ThisWorkbook.Path等で解決できることが
わかりました。

>book2を呼び出した時、自動的にプレビュー表示をしてくれません。
についてわかったら教えてください。

【13549】Re:ハイパーリンク呼び出しについて
回答  IROC  - 04/5/7(金) 11:47 -

引用なし
パスワード
   >>book1に記述するファイル名(book2)は、フルパス指定しないと
>>動きません。

>パスについては、ThisWorkbook.Path等で解決できることがわかりました。

book1.xlsは保存していましたか?
同じフォルダ保存されている場合は、パスの指定は必要ありません。

Workbooks.open "book2.xls"
で、
Workbooks.open ThisWorkbook.Path & "\book2.xls"
と同じ動作になります。


>>book2を呼び出した時、自動的にプレビュー表示をしてくれません。
>についてわかったら教えてください。
標準モジュールの
Sub Auto_Open() プロシージャを
thisworkbookモジュールの
Private Sub Workbook_Open() プロシージャに変更して下さい。

openメソッドでブックを開いたときに
Auto_Open は実行されないようです。


>
>>book2を呼び出した時、自動的にプレビュー表示をしてくれません。
>についてわかったら教えてください。

【13552】Re:ハイパーリンク呼び出しについて
お礼  Kaz  - 04/5/7(金) 12:25 -

引用なし
パスワード
   教えて頂いた方法で、希望する動作が実現できそうですので
試してみます。
IROC さん、いろいろと、どうもありがとうございました。

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