Excel VBA質問箱 IV

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

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


3922 / 13644 ツリー ←次へ | 前へ→

【59409】アクティブウインドウとタスクバーがずれる ON 08/12/10(水) 10:53 質問[未読]
【59410】Re:アクティブウインドウとタスクバーがず... ON 08/12/10(水) 11:12 質問[未読]
【59411】Re:アクティブウインドウとタスクバーがず... ON 08/12/10(水) 11:33 発言[未読]
【59414】Re:アクティブウインドウとタスクバーがず... ON 08/12/10(水) 13:48 質問[未読]
【59420】Re:アクティブウインドウとタスクバーがず... Jaka 08/12/10(水) 17:03 発言[未読]
【59422】Re:アクティブウインドウとタスクバーがず... ON 08/12/10(水) 17:29 発言[未読]
【59427】Re:アクティブウインドウとタスクバーがず... neptune 08/12/10(水) 20:52 発言[未読]
【59435】Re:アクティブウインドウとタスクバーがず... ON 08/12/11(木) 10:23 質問[未読]
【59446】Re:アクティブウインドウとタスクバーがず... neptune 08/12/11(木) 14:24 発言[未読]
【59456】Re:アクティブウインドウとタスクバーがず... ON 08/12/11(木) 19:57 お礼[未読]
【59457】Re:アクティブウインドウとタスクバーがず... ON 08/12/11(木) 19:59 お礼[未読]

【59409】アクティブウインドウとタスクバーがずれ...
質問  ON  - 08/12/10(水) 10:53 -

引用なし
パスワード
   よろしくお願いいたします

タスクバーに
ブック1、ブック2、VBEが表示されています

ブック2
ブック2のマクロを実行すると
ブック1のタスクが選択された状態なってしまいます
画面はブック2が表示されています
↑画面とタスクバがずれている

ブック1は、今回のマクロとは何の関係もありません


ここでタスクバーのVBEを選択し、再度VBEのタスクバーを選択すると
ブック2のタスクが選択された状態になります
↑画面とタスクがあっている

マクロをステップ実行すると上記不具合は発生しません

  'ActiveSheet.EnableCalculation = False
  'Application.EnableEvents = False
  Call RENEW_hoge
  'ActiveSheet.EnableCalculation = True
  'Application.EnableEvents = True

RENEW_hogeをコメントアウトすると不具合は発生しません

RENEW_hogeは、
Sheets("hoge")を下記のようにして初期化しています

Sub RENEW_hoge()

'GoTo 88:

  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  
  Sheets("hoge").Delete
  
  Sheets("hoge元").Visible = True
  
  Sheets("hoge元").Copy Before:=Sheets(1)
  Sheets("hoge元 (2)").Name = "hoge"
  
  Sheets("hoge").Visible = False
  
  Application.DisplayAlerts = True
  Application.ScreenUpdating = False
  
'88:

End Sub


また
Sheets("hoge")には、連番列があって
=SQ_CNT(D13)+OFFSET(E13,-1,0)
のようにしています
ただしGoToで飛ばしたりしても
上記不具合は発生しますのでこれは違うような気がします


Public Function SQ_CNT(tg As Range)

'GoTo 33:
  
  Application.Volatile
  
  If tg.Interior.ColorIndex = 15 Then
  
    SQ_CNT = SQ_CNT + 0
  Else
  
    SQ_CNT = SQ_CNT + 1
  
  End If
  
'33:

End Function


わかりにくいとと思いますがアドバイスお願いします

【59410】Re:アクティブウインドウとタスクバーが...
質問  ON  - 08/12/10(水) 11:12 -

引用なし
パスワード
   わかりにくすぎたので再掲します

ブックを2つ開いて

どちらかのブックに下記モジュールを貼り付け
atest2()を実行すると
タスクバーのエクセルは無選択となってしまいます

どうしてでしょうか

また
atest2()
の中でタクスを選択できればそれでもかまいません

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


Sub RENEW_st2()

'GoTo 88:

  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  
  Sheets("Sheet1").Delete
  
  Sheets("Sheet3").Visible = True
  
  Sheets("Sheet3").Copy Before:=Sheets(1)
  Sheets("Sheet3 (2)").Name = "Sheet1"
  
  Sheets("Sheet1").Visible = True
  
  Application.DisplayAlerts = True
  Application.ScreenUpdating = False
  
'88:

End Sub


Public Sub atest2()

RENEW_st2

End Sub

【59411】Re:アクティブウインドウとタスクバーが...
発言  ON  - 08/12/10(水) 11:33 -

引用なし
パスワード
   追記です

Application.ScreenUpdating = false
 ↓
Application.ScreenUpdating = True

のように修正しましたが、やはりタスクバーのタスクは選択されませんでした

何かアドバイスありましたらよろしくお願いいたします

【59414】Re:アクティブウインドウとタスクバーが...
質問  ON  - 08/12/10(水) 13:48 -

引用なし
パスワード
   途中報告と再説明です
わかりにくいと思いますがよろしくお願いいたします

book1のSheet3のA1にABCと入力し、Sheet3を非表示にします
book1に下記モジュールを貼り付けます

動作の確認1
book1のSheet1を選択し、マクロの実行でatest2()を実行すると
Sheet3がSheet1の名前でブックに挿入されSheet1が表示されますが
タスクバーのbook1は選択されていません
セルを選択してもタスクバーのbook1は選択された状態になりません
↑異常な状態と思います


動作の確認2
上記book1のほかに、book2を開きます
book1のSheet1を選択し、マクロの実行でatest2()を実行
Sheet3がSheet1の名前でブックに挿入されSheet1が表示され
タスクバーのbook1は選択されています
↑正常な状態


Q1動作の確認1はどんな状態になっているのでしょうか


Q2動作の確認1のときタスクバーのbook1をアクティブ(押された状態)
にするには、コードをどのように修正したらよいでしょうか


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


book1の標準のジュール

'シート1を削除して、シート3をコピーして、シート1にして挿入
Sub RENEW_st2()

  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  
  Sheets("Sheet1").Delete
  
  Sheets("Sheet3").Visible = True
  
  Sheets("Sheet3").Copy Before:=Sheets(1)
  Sheets("Sheet3 (2)").Name = "Sheet1"
  
  Sheets("Sheet1").Visible = True
  
  Application.DisplayAlerts = True
  Application.ScreenUpdating = True

End Sub


Public Sub atest2()

RENEW_st2

'Windows(ThisWorkbook.Name).Activate
'Application.Wait (Now + TimeValue("0:00:01"))

'Windows("Book2").Activate
'Windows("Book1").Activate

Call get_ant_bk
'Windows(ThisWorkbook.Name).Activate

'MsgBox ActiveWindow.Caption
'Cells(1, 1).Select
'Windows("Book1").Activate

End Sub


'タスクバーのブック1をアクティブにするつもり
Sub get_ant_bk()

  Dim i As Integer
  
    For i = 1 To Workbooks.Count
    
      Debug.Print Workbooks(i).Name
      Debug.Print ThisWorkbook.Name
      
      If Workbooks(i).Name <> ThisWorkbook.Name Then
        Debug.Print Workbooks(i).Name
        
        Windows(Workbooks(i).Name).Activate
        ThisWorkbook.Activate
        Exit Sub
      Else
        
        
      End If
    Next
    
    ThisWorkbook.Activate
    ActiveSheet.Activate
    
  
End Sub

【59420】Re:アクティブウインドウとタスクバーが...
発言  Jaka  - 08/12/10(水) 17:03 -

引用なし
パスワード
   2002SP3ですが、状態を確認できません。
ただ、パーソナルブックが表示されてしまいます。

【59422】Re:アクティブウインドウとタスクバーが...
発言  ON  - 08/12/10(水) 17:29 -

引用なし
パスワード
   ▼Jaka さん:
こんにちは
確認ありがとうございました

こちらは
XP SP2
EXCEL 2003 SP3
です

PC2台で確認してみましたが、症状は同じです
ただ、それほど変なこともしていないつもりと思いますが

>ただ、パーソナルブックが表示されてしまいます。
↑の動作は変ですよね・・・・

【59427】Re:アクティブウインドウとタスクバーが...
発言  neptune  - 08/12/10(水) 20:52 -

引用なし
パスワード
   ▼ON さん:
私も検証してみました。

どうやら、
AppActivate Application.Caption
を処理後に実行してやる必要があるようですね。

恐らくBookにフォーカスが当たって、Excelに帰ってないような気がします。
仕様という名のバグかも・・・・?

XP SP3
Office2K

【59435】Re:アクティブウインドウとタスクバーが...
質問  ON  - 08/12/11(木) 10:23 -

引用なし
パスワード
   ▼neptune さん:
こんにちは

>私も検証してみました。
お手数かけます

>どうやら、
>AppActivate Application.Caption
>を処理後に実行してやる必要があるようですね。
ありがとうございます

AppActivate
見たことはあるのですが使用したことはなかったようなです

ヘルプでは
完全に一致するものが見つからないときは、
アプリケーション ウィンドウのタイトル バーの文字列が名前付き引数 title で
始まるアプリケーションをアクティブにします。
名前付き引数 title と一致するアプリケーション ウィンドウが複数ある場合も、
その中の 1 つが任意に選択されてアクティブになります。
とありましたが

これってあいまい検索?なのでしょうか

あと、イミディエイトウインドウで下記確認
? Application.Caption
Microsoft Excel - Book1
? ActiveWindow.Caption
Book1

の上で
ご紹介いただいた
AppActivate Application.Caption
では、タスクがアクティブにすることが出来ませんでしたが

AppActivate ActiveWindow.Caption
でタスクがアクティブになりました

また
VBA.AppActivate Application.Caption
VBA.AppActivate ActiveWindow.Caption
は、どちらもアクティブになりました

なんで〜
上記よくわかりません
アドバイスいただけるとうれしいです
よろしくお願いいたします

また、
>1 つが任意に選択されてアクティブ
から
ActiveWindow.Caption
が、一番、よさげな気がしますがどうなんでしょう


>恐らくBookにフォーカスが当たって、Excelに帰ってないような気がします。
>仕様という名のバグかも・・・・?
ん〜 そーなんですか・・・・
普通の操作の寄せ集めで発生してしまうんですか・・・
どこで、発生しているかわからないのでなんとなく気持ち悪いみたいな
です

【59446】Re:アクティブウインドウとタスクバーが...
発言  neptune  - 08/12/11(木) 14:24 -

引用なし
パスワード
   ▼ON さん:
こんにちは

>これってあいまい検索?なのでしょうか
内部の仕組みを知ってるわけではないのですが、あいまい検索というのとは
違うと思います。
勘ですが、各Windowかスレッドなどの情報を取得して、無ければある決まった
優先順位で決定しているような気がします。

>
>あと、イミディエイトウインドウで下記確認
>? Application.Caption
>Microsoft Excel - Book1
>? ActiveWindow.Caption
>Book1
>
>の上で
>ご紹介いただいた
>AppActivate Application.Caption
>では、タスクがアクティブにすることが出来ませんでしたが
>
>AppActivate ActiveWindow.Caption
>でタスクがアクティブになりました
>
>また
>VBA.AppActivate Application.Caption
>VBA.AppActivate ActiveWindow.Caption
>は、どちらもアクティブになりました
AppActivate はVBAのメンバですから、
AppActivate ActiveWindow.Caption

AppActivate ActiveWindow.Caption
も同等です。
VBAを実行する際にActiveになっているWindowで違ってくるのかもしれません?
Windowと一言で言っても沢山ありますからね。

>>1 つが任意に選択されてアクティブ
>から
>ActiveWindow.Caption
>が、一番、よさげな気がしますがどうなんでしょう
それで、問題ないならそれでよいのでは?
ちょっと、Excelで、どうやって、Book毎にタスクバーにWindowを表示
させているのか知らないんでなんともいえません。
私自身Excelではwindowと付いているものは使わない事もあって、
よく判りませんので。・・・・windowなんたらの必要を感じたこと自体がないし。

>ん〜 そーなんですか・・・・
>普通の操作の寄せ集めで発生してしまうんですか・・・
>どこで、発生しているかわからないのでなんとなく気持ち悪いみたいなです
探しきれませんでしたけど、他にも同様な不具合はあったと思いますよ。
昔から、DB関係,RefEdit等は有名ですし。

「Excel 不具合 認識しています」をキーワードにしてサポート技術情報
ht tp://support.microsoft.com/
で検索すればた〜くさんあります。

【59456】Re:アクティブウインドウとタスクバーが...
お礼  ON  - 08/12/11(木) 19:57 -

引用なし
パスワード
   ▼neptune さん:
詳細な解説ありがとうございます
勉強になりました

>>が、一番、よさげな気がしますがどうなんでしょう
>それで、問題ないならそれでよいのでは?
は、勘違いがありました
ActiveWindow.Caption の見た目の文字ずらから、こちらのほうがいいのかと
でも、戻り値でみると
AppActivate Application.Caption
のほうがいいと思うのですが、エラーで・・・

>「Excel 不具合 認識しています」をキーワードにしてサポート技術情報
>ht tp://support.microsoft.com/
フニャー、たくさんあるんですか・・
帰ってから見たいと思います
以前から、このような情報どうやって仕入れているのか疑問だったのですが
なるほどです

わかりにくい質問のなか、ご返事頂き、ありがとうございまいした
今回の不具合解消できました
Jakaさん
neptuneさん
ありがとうございました

今後もよろしくお願いいたします

【59457】Re:アクティブウインドウとタスクバーが...
お礼  ON  - 08/12/11(木) 19:59 -

引用なし
パスワード
   お礼 チェック忘れました

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