- ベストアンサー
画面のちらつきを無くす
- シート上のセルからユーザーフォームを開く際に、画面がちらつく問題が発生しています。
- リストボックスを操作する際に、リスト1から項目を選択し、次にリスト2またはリスト3を選択すると画面がちらつく現象が起きます。
- 画面のちらつきを解消する方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2です。何度もすみません。 この場合は、 Application.ScreenUpdating を変えなくてもいいかもしれません。 実際に実行してみましたが、この行があると少しですが画面がちらつくようですが、ないと全くちらつきませんでした。 Private Sub リスト1_Click() ActiveCell.Value = リスト1.List(リスト1.ListIndex, 0) End Sub Private Sub リスト2_Click() ActiveCell.Offset(0, 3).Value = リスト2.List(リスト2.ListIndex, 0) End Sub Private Sub リスト3_Click() ActiveCell.Offset(1, 3).Value = リスト3.List(リスト3.ListIndex, 0) End Sub
その他の回答 (2)
- nag0720
- ベストアンサー率58% (1093/1860)
ちらつく原因は、 ActiveCell.Offset(0, 3).Activate などでActiveCellを変更しているためだと思います。 セルに値を入れるだけだったらActiveCellを変える必要はありません。 Private Sub リスト1_Click() Application.ScreenUpdating = False ActiveCell.Value = リスト1.List(リスト1.ListIndex, 0) Application.ScreenUpdating = True End Sub Private Sub リスト2_Click() Application.ScreenUpdating = False ActiveCell.Offset(0, 3).Value = リスト2.List(リスト2.ListIndex, 0) Application.ScreenUpdating = True End Sub Private Sub リスト3_Click() Application.ScreenUpdating = False ActiveCell.Offset(1, 3).Value = リスト3.List(リスト3.ListIndex, 0) Application.ScreenUpdating = True End Sub
すいません。 私もあまり詳しくないので間違えるかもしれないですが エクセルvbaですよね? 私がよく画面のちらつきをなくすために使用するコードは Application.ScreenUpdating = False です。 戻す時は Application.ScreenUpdating = True にします。
補足
皆様 回答ありがとうございます。 ご返事をするのが遅くなってすみません。 私の説明不足で誠にすみません。 リスト3は結合セル(2行分)を、マタイでいますので お教えいただいた構文では、目的のセルの1行下に転入されます。 ActiveCell.Offset(1, 3).Value = 材料店リスト.List(材料店リスト.ListIndex, 0) ^^^^^^ 自己流で下のようにしてみました。 一応、思い通りの位置に転記されるのですが構文として正しいでしょうか。 よろしくご教示お願いします。 ActiveCell.Offset(0, 3).Activate ActiveCell.Offset(1, 0).Value = 材料店リスト.List(材料店リスト.ListIndex, 0)