Excel VBA質問箱 IV

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

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


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

【8973】ワークシートのイベントなんですが kawata 03/11/12(水) 14:19 質問
【8979】Re:ワークシートのイベントなんですが ichinose 03/11/12(水) 17:13 発言
【8980】Re:ワークシートのイベントなんですが ハマゾウ 03/11/12(水) 17:18 回答
【8981】Re:ワークシートのイベントなんですが kawata 03/11/12(水) 17:26 お礼

【8973】ワークシートのイベントなんですが
質問  kawata  - 03/11/12(水) 14:19 -

引用なし
パスワード
   kawataです、いつもお世話になっております。
よろしくお願いします。
(Windows2000/Excel2000)

ある報告用のシートを作成しています。
1〜4行目までは、ブックのタイトルとかボタンの配置用に使用。
4〜32行目までが、シートのヘッダ部分となっており、34行目
以降に、データを入力していきます。
で、こちらの一般的な環境ですと、画面フル表示にしても、入力部分
が4〜5行しか見えません。
というわけで、下記のようなマクロを組んだのですが・・・、
一応望みとおりの動作はします、しかし、常時イベントひろいっぱなし
で画面がチラチラしてどうもうまくありません。

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  If Sh.Name <> "body" Then Exit Sub
  If Target.Row > 33 Then
    Rows("4:32").EntireRow.Hidden = True
  Else
    Rows("4:32").EntireRow.Hidden = False
  End If
End Sub
'※ThisWorkbookモジュールに記述しました。

もっとスマートな方法をぜひよろしくお願いします。

【8979】Re:ワークシートのイベントなんですが
発言  ichinose  - 03/11/12(水) 17:13 -

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

>kawataです、いつもお世話になっております。
>よろしくお願いします。
>(Windows2000/Excel2000)
>
>ある報告用のシートを作成しています。
>1〜4行目までは、ブックのタイトルとかボタンの配置用に使用。
>4〜32行目までが、シートのヘッダ部分となっており、34行目
>以降に、データを入力していきます。
>で、こちらの一般的な環境ですと、画面フル表示にしても、入力部分
>が4〜5行しか見えません。
>というわけで、下記のようなマクロを組んだのですが・・・、

33行目あたりでウインドウを固定しているんですよね?
簡単に記述エリアが広がったり、縮まったりで良いと思いますけどねえ!!

>一応望みとおりの動作はします、しかし、常時イベントひろいっぱなし
>で画面がチラチラしてどうもうまくありません。

これは、Hiddenプロパティが元々Trueなのに、さらにTrueを設定したり、
Falseなのに再度、Falseにしていることも原因になっていませんか?

>Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
>  If Sh.Name <> "body" Then Exit Sub
>  If Target.Row > 33 Then
    If Rows("4:32").EntireRow.Hidden = False Then
>     Rows("4:32").EntireRow.Hidden = True
      End If
>  Else
    If Rows("4:32").EntireRow.Hidden = True Then
>     Rows("4:32").EntireRow.Hidden = False
      End If
>  End If
>End Sub
とすると、少しは、良いみたいですが・・・・。

【8980】Re:ワークシートのイベントなんですが
回答  ハマゾウ E-MAIL  - 03/11/12(水) 17:18 -

引用なし
パスワード
   ▼kawata さん
画面のちらつきは以下のとおり修正すれば改善しますよ

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  If Sh.Name <> "body" Then Exit Sub
  If Target.Row > 33 Then
    If Rows("4:32").EntireRow.Hidden = False Then
      Rows("4:32").EntireRow.Hidden = True
    End If
  Else
    If Rows("4:32").EntireRow.Hidden = True Then
      Rows("4:32").EntireRow.Hidden = False
    End If
  End If
End Sub

【8981】Re:ワークシートのイベントなんですが
お礼  kawata  - 03/11/12(水) 17:26 -

引用なし
パスワード
   kawataです、よろしくお願いします。

ichinoseさん、ハマゾウさん、ありがとうございました。

すごいすごい、バッチリです。
ここまでできたら、もう十分です。
ありがとうございました、速攻で組み込みました。

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

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