Excel VBA質問箱 IV

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

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


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

【65870】先行ブックプレビューの有無取得 pon 10/7/3(土) 12:29 質問[未読]
【65936】Re:先行ブックプレビューの有無取得 熊谷隆史 10/7/9(金) 6:47 発言[未読]
【65945】Re:先行ブックプレビューの有無取得 mura 10/7/9(金) 14:27 回答[未読]
【65947】Re:先行ブックプレビューの有無取得 pon 10/7/9(金) 20:08 発言[未読]
【65952】Re:先行ブックプレビューの有無取得 mura 10/7/10(土) 0:19 回答[未読]
【65968】Re:先行ブックプレビューの有無取得 熊谷隆史 10/7/11(日) 7:31 発言[未読]

【65870】先行ブックプレビューの有無取得
質問  pon E-MAIL  - 10/7/3(土) 12:29 -

引用なし
パスワード
   こんにちは よろしくお願いいたします

アクセスの クラスモジュール Class_Initialize内 で

  Set xlsApp = GetObject(, "Excel.Application")
  If Err.Number <> 0 Then   'Excelが起動されていない
    Set xlsApp = CreateObject("Excel.Application")
  End If
  Set bokWork = xlsApp.Workbooks.Open(tg_bk_fp)

として開いているのですが

通常
先行ブックがプレビュー表示されていると、プレビューを閉じるまでそのまま待機
と思っていますが

他部署で使用している同じ処理のマクロで、ブックを呼出すと
エクセルが暴走(画面がチカチカ入れ替わっている)
↑電話での話なので状況は良く分かりませんが・・・・
とりあえずタスクマネージャーでアクセス、エクセルを終了してもらいました
その後
エクセルをプレビューをさせないで再度試すと不具合は発生しないとのことでした

状況は思い出せないのですが
エクセルVBAでブック操作した時も同様な状況に遭遇したことがあるような気がします

クラスモジュールとは直接の関係は無いような気もしますが、とりあえず
記載させて頂きました

そこで
先行ブックがプレビュー表示されているときは
プレビューを閉じてください メッセージを出したいと思っているのですが
取得方法がわかりません

アドバイスよろしくお願いいたします

【65936】Re:先行ブックプレビューの有無取得
発言  熊谷隆史  - 10/7/9(金) 6:47 -

引用なし
パスワード
   お久し振りです。その後、お体の調子はいかがでしょうか。
本題に付いてはさっぱり分かりませんが。
このまま、レスが付かない様でしたら、こちらを閉じて、
他所で質問するのも一考ではないでしょうか。

【65945】Re:先行ブックプレビューの有無取得
回答  mura  - 10/7/9(金) 14:27 -

引用なし
パスワード
   ▼pon さん:
>>先行ブックがプレビュー表示されているときは
>プレビューを閉じてください メッセージを出したいと思っているのですが
>取得方法がわかりません

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
 (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
モジュールレベルに↑を記述し、
以下のかんじで取得できると思います。

 Dim hWnd&
 Set xlsApp = GetObject(, "Excel.Application")
 If Err.Number <> 0 Then
  Set xlsApp = CreateObject("Excel.Application")
 Else
  hWnd = FindWindowEx(0, 0, "XLMAIN", vbNullString)
  hWnd = FindWindowEx(hWnd, 0, "EXCELC", vbNullString)
  If hWnd Then
   MsgBox "プレビュー中"
   Exit Sub
  End If
 End If

【65947】Re:先行ブックプレビューの有無取得
発言  pon E-MAIL  - 10/7/9(金) 20:08 -

引用なし
パスワード
   熊谷隆史 さん 
書込みありがとうございます ♪

>お久し振りです。その後、お体の調子はいかがでしょうか。

ありがとうございます
もう 3,4年たってしまったのかしら・・・
生まれて初めの入院だったのですが
いまから思うと、
ある意味、物心ついてから3食昼寝付きみたいな生活で
一番楽だったような気がします
 子供の頃は何かと怒られることも多かったような・・・ (~_~;)
もちろん、退院間際のことですが・・・・ 
で、今は至って元気です 目以外はですが・・ T_T

>本題に付いてはさっぱり分かりませんが。
>このまま、レスが付かない様でしたら、こちらを閉じて、
>他所で質問するのも一考ではないでしょうか。
ありがとうございます

こちらもずいぶん前のような気がしますが
M**G 改定後
会社からアクセス出来なくなってしまいました
アドバイスを頂いて先ほど試してみましたが

新しいパスワードを使う前にパスワードの承認が必要です。
下記のアドレスで承認を完了してください。
で、承認ページへ行って完了しているのですが
ログイン画面から先に進めません と 改定当初と同じでした。
どちらに不具合?制限がかかっているのかわかりませんが・・・
でも、M**G以外(2CH等制限ページ以外)にこんなことは無いような気がします
ということで、会社からアクセス出来ないは致命的です

後、勝手に過去ログが無くなることも・・・

今では、M**Gが第1の故郷、こちらが第2の故郷みたいな感じです
お気が向いたら書込み頂けるとうれしいです。
よろしくお願いいたします。


mura さん ありがとうございます
ググッてはみたのですが、まったくヒットしませんでした
で、半ばあきらめていたのですが
アクセスモジュールからの実行で希望の操作かないました
ありがとうございました

ただ、API難しいです
ご提示頂いたコードのどこが プレビューを判断しているのかわかりません
簡単にコメント頂けるとうれしいです
よろしくお願いいたします

追加の質問で申し訳ないのですが
エクセルからの取得はどうすれば出来ますか

>通常
>先行ブックがプレビュー表示されていると、プレビューを閉じるまでそのまま待機
>と思っていますが

通常の方法では、コードが走ってくれないような気がします

こちらもあわせて簡単にコメント頂けるとうれしいです

よろしくお願いいたします

【65952】Re:先行ブックプレビューの有無取得
回答  mura  - 10/7/10(土) 0:19 -

引用なし
パスワード
   ▼pon さん:
>ご提示頂いたコードのどこが プレビューを判断しているのかわかりません
>簡単にコメント頂けるとうれしいです

何か違いが見つかれば判断できると思い、Excelウィンドウの構成に着目して見ました。
Excelクラス名:XLMAINの直下のウィンドウ列挙
↓通常のExcelのクラス名
EXCEL4
EXCEL;
EXCEL<
EXCEL2
XLDESK
以下省略

↓プレビューのExcelのクラス名
EXCELB
EXCELC
EXCEL4
EXCEL;
EXCEL<
EXCEL2
XLDESK
以下省略

このことから通常のExcelに無くて、プレビューのExcelに在るクラス名を発見しました。
EXCELB 及び EXCELC です。
プログラムではEXCELC が存在していたらプレビューと判断しています。

>追加の質問で申し訳ないのですが
>エクセルからの取得はどうすれば出来ますか

同じ方法で判定は出来るでしょうが、プレビュー状態ではマクロの起動は出来ないので、
どういう場面・手順で何の目的でプレビューの判断をしたいのか、
具体的に示してもらえませんか。

【65968】Re:先行ブックプレビューの有無取得
発言  熊谷隆史  - 10/7/11(日) 7:31 -

引用なし
パスワード
   ▼pon さん:
> で、今は至って元気です 目以外はですが・・ T_T

Paperモードなるモニタに変更するとか。
ht tp://plusd.itmedia.co.jp/pcuser/articles/1005/21/news062.html


VBEをDOS画面の様な黒地に白にするとか。
(見やすく感じるかは個人差がある様です。私も逆に見づらくなるのではと思うので)
ht tp://officetanaka.com/patio/patio.cgi?mode=view&no=2542

ドキュメントの類は電子ペーパーで確認するとか。
(ミラソルディスプレイが出てくればもう少し見やすくなるかと)

XPだと、Liquid ViewやQZoom等を導入するとか。

他所の掲示板の仕様に付いては分かりかねます。

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