過去ログ

                                Page     621
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼非表示行をカウントしない方法をお教え願います。  ヒデノ 03/1/27(月) 19:16
   ┗Re:非表示行をカウントしない方法をお教え願います。  ichinose 03/1/27(月) 20:52
      ┗Re:非表示行をカウントしない方法をお教え願います。  JuJu 03/1/28(火) 7:47
         ┗Re:非表示行をカウントしない方法をお教え願います。  ichinose 03/1/28(火) 8:07
            ┗Re:非表示行をカウントしない方法をお教え願います。  ヒデノ 03/1/28(火) 10:54

 ───────────────────────────────────────
 ■題名 : 非表示行をカウントしない方法をお教え願います。
 ■名前 : ヒデノ
 ■日付 : 03/1/27(月) 19:16
 -------------------------------------------------------------------------
   下記の、項目Aの1行目(A01)のセルにカーソルがいる時に、
Enterや、↓キーを押した場合、2行目を非表示にする
【前】は、項目Aの2行目(A02、B02)
【後】は、項目Aの3行目(A03、B03)
にカーソルが移りますが、これをマクロで実現したくて
困っています。
非表示した後の、1行目の次の行が3行目だと求められる方法を
お教え願います。

【非表示前】      【非表示後】
行 項目A 項目B   行 項目A 項目B
1 A01 B01   1 A01 B01
2 A02 B02 → 3 A03 B03
3 A03 B03
 ───────────────────────────────────────  ■題名 : Re:非表示行をカウントしない方法をお教え願います。  ■名前 : ichinose  ■日付 : 03/1/27(月) 20:52  -------------------------------------------------------------------------
   ▼ヒデノ さん:
こんばんは。
>下記の、項目Aの1行目(A01)のセルにカーソルがいる時に、
>Enterや、↓キーを押した場合、2行目を非表示にする
>【前】は、項目Aの2行目(A02、B02)
>【後】は、項目Aの3行目(A03、B03)
>にカーソルが移りますが、これをマクロで実現したくて
>困っています。
>非表示した後の、1行目の次の行が3行目だと求められる方法を
>お教え願います。
>
>【非表示前】      【非表示後】
>行 項目A 項目B   行 項目A 項目B
>1 A01 B01   1 A01 B01
>2 A02 B02 → 3 A03 B03
>3 A03 B03
そのまま、コード化してみました。
'===================================================
Sub test()
  ActiveSheet.activate
  Application.SendKeys "{ENTER}", True
  DoEvents
  MsgBox "今" & ActiveCell.Row & "行目"
End Sub

上記のコード、Doevents入れないと何にも反応しませんでした(msgboxも実行されない)。

バグでしょうか? JuJuさん?(すみません、アミダくじで・・)
ex2000です。
 ───────────────────────────────────────  ■題名 : Re:非表示行をカウントしない方法をお教え願います。  ■名前 : JuJu <juju-bbs@su-u.com>  ■日付 : 03/1/28(火) 7:47  -------------------------------------------------------------------------
   ヒデノさん、ichinoseさん、こんにちはぁ

>Sub test()
>  ActiveSheet.activate
>  Application.SendKeys "{ENTER}", True
>  DoEvents
>  MsgBox "今" & ActiveCell.Row & "行目"
>End Sub
>
>上記のコード、Doevents入れないと何にも反応しませんでした(msgboxも実行されない)。
>バグでしょうか? JuJuさん?(すみません、アミダくじで・・)

いきなり当りですか^^;
バグではありません、仕様です。(仕様と言う名前のバグでもありませんよ^^;)

引地にTrueを選択しているので、処理を持ってくれると思われがちですが、
対象アプリケーションが(メッセージを)入力するのを待つだけです。
入力してすぐ処理するかは、アプリケーション次第です。

Excelでは入力された処理を、イベント待ちかDoEventsで制御を渡したときに処理します。(特定のメソッド等でも処理するものもあります)

ですので
 Application.SendKeys "{ENTER}", True
 MsgBox "今" & ActiveCell.Row & "行目"
とすると、
Enterはメッセージボックスが表示されてイベント待ちになったときに処理されるので、メッセージボックスは表示されてすぐに、Enterを押されたように動きます。

たとえば、時間がかかるマクロを実行中にキーを入力すると、入力待ちとかマクロ終了時に処理されますよね。そういうイメージです。

んん、説明下手ですね^^;;

ではではぁ
 ───────────────────────────────────────  ■題名 : Re:非表示行をカウントしない方法をお教え願います。  ■名前 : ichinose  ■日付 : 03/1/28(火) 8:07  -------------------------------------------------------------------------
   ▼JuJu さん:
おはようございます。
>>Sub test()
>>  ActiveSheet.activate
>>  Application.SendKeys "{ENTER}", True
>>  DoEvents
>>  MsgBox "今" & ActiveCell.Row & "行目"
>>End Sub
>バグではありません、仕様です。(仕様と言う名前のバグでもありませんよ^^;)
>
>引地にTrueを選択しているので、処理を持ってくれると思われがちですが、
>対象アプリケーションが(メッセージを)入力するのを待つだけです。
>入力してすぐ処理するかは、アプリケーション次第です。
>
>Excelでは入力された処理を、イベント待ちかDoEventsで制御を渡したときに処理します。(特定のメソッド等でも処理するものもあります)

>ですので
> Application.SendKeys "{ENTER}", True
> MsgBox "今" & ActiveCell.Row & "行目"
>とすると、
>Enterはメッセージボックスが表示されてイベント待ちになったときに処理されるので、メッセージボックスは表示されてすぐに、Enterを押されたように動きます。

なるほど、じゃあ、実行はしていると言う事ですね!!


>たとえば、時間がかかるマクロを実行中にキーを入力すると、入力待ちとかマクロ終了時に処理されますよね。そういうイメージです。
>
>んん、説明下手ですね^^;;
とんでもありません、ありがとうございました。
と、Ex2000では、納得ですが、となると、Ex2002のほうは・・・?
 ───────────────────────────────────────  ■題名 : Re:非表示行をカウントしない方法をお教え願います。  ■名前 : ヒデノ  ■日付 : 03/1/28(火) 10:54  -------------------------------------------------------------------------
   ichinose 様
JuJu 様   

お忙しいところ貴重なお時間を割いていただきまして、
誠にありがとうございました。

おかげさまでうまくカウントすることができました。
心から感謝いたします。

でも、またよろしくお願いします。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 621