エクセルの入力で、どの行を操作しているのかわかるように、他の方のVBAを参考にして
条件付き書式で
=CELL("ROW")=ROW()
VBAにて
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.ScreenUpdating = True
End Sub
こちらを併用して表示しています。
マクロ処理で、画面のチラツキをなくすため、
Application.ScreenUpdating = False
としているのですが、先ほどのWorkbook_SheetSelectionChangeの構文が効いていて
画面の動きが出てしまいます。
マクロ実行中だけ、一時的にWorkbook_SheetSelectionChangeの効力を止める、
もしくは代替の方法はありますでしょうか?
No.2ベストアンサー
- 回答日時:
こんばんは
何だか「風通しを良くするために穴をあけたら、雨や虫が入ってくるんだけれど、どうすれば・・?」みたいな感じですね。
>マクロ実行中だけ、一時的にWorkbook_SheetSelectionChangeの効力を止める
ご質問文の通りにするのなら、EnableEventsプロパティをFalseにしておけばイベントの発生を停止できます。
https://learn.microsoft.com/ja-jp/office/vba/api …
(元の状態(=True)に戻さないと、そのままになりますのでご注意)
でも、これって「穴を塞ぐのに、もう一枚壁を作る」みたいなことになっているような気もしますが。
>もしくは代替の方法はありますでしょうか?
実際になさりたいことがよくわからないので、以下は一般論的になってしまいますけれど・・
ご提示の条件付き書式で色付けなどをするとなると、対象セルに全て条件付き書式を設定しておく必要があるのと、ご提示のイベント処理はブック全体を対象にしていますけれど、全シートで同様のことを行うということなのでしょうか?
通常の状態であれば、ScreenUpdating = True の状態になっているはずですので(マクロから意図的に停止した場合は別ですが)、ご提示の内容のためだけにわざわざマクロを使うのであれば、マクロで対象セルに色付けをしてしまえば済む話のようにも思います。
(条件付き書式を設定する必要がなくなります)
元のセルにいろいろな色が設定してあったりすると、元に戻すためにそれを記録しておく必要が生じるので、多少は面倒になりますが・・
>マクロ処理で、画面のチラツキをなくすため~
「チラツキ」を無くすことが主目的なら、マクロ中の Select や Activate などの構文を無くすような記述法にすること、及び、まとめて結果を記入するなどの方法にすることで、ほとんど無くすことが可能ですし、処理速度も向上するはずです。
(新規のブック、シートなどを作成する場合を除く)
一方で、マクロ実行中にシートへの記入等が発生すると、各種イベントは発生しますので、上記のようにイベントを停止しておかないと処理効率が悪くなります。
(処理の組み合わせが悪ければ、抜け出せなくなります)
(不要なイベント処理を設けなければ、その様な必要も生じませんけれど)
回答ありがとうございました。
SelectやActivateは使っていませんが、行数が100行近くあり、ForNextなどでセルをコピーしている関係上、画面がちらつく等の影響がありました。
丁寧に説明していただきありがとうございます。
同様の回答もありましたが、こちらをベストアンサーと
させていただきます。
No.3
- 回答日時:
自分のところでは、画面のチラつきはありませんね。
ところで…… ’ThisWorkbook’ にマクロを記述していますか?
・・・
=AND(CELL("ROW")=ROW(), CELL("COL")=COLUMN())
で、セルの上下左右の罫線を赤。
=CELL("ROW")=ROW()
で、セルの上下の罫線を赤。
=CELL("COL")=COLUNM()
で、セルの左右の罫線を赤。
これを決まった範囲のセルに対して設定。
間違ってもシート全体なんてことはしません。
マクロは
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Application.ScreenUpdating = True
End Sub
でやってます。
ByVal Target As Range
↓
ByVal Target As Excel.Range
の違いはありますが……
・・・余談・・・
いっそマクロを無効にして、[F9]キーで強制的に再計算させるという方法もあります。
(´・ω・`) 面倒だけど、入力しているセルを見失わない限り再計算させる必要もないので、
運用方法としてはありですよ。
そもそもこの[F9]キーを押すのが面倒だからマクロで代用しているってだけですから。
「計算方法」を ”手動” にしておけば、さらに良し。
回答ありがとうございました。
言葉足らずで申し訳ありません。
Private Sub Workbook_SheetSelectionChangeはThisWorkbookです。
セルの色塗りの関係もあるため、条件付き書式が妥当と考えています。
条件付き書式も、必要なセルに対して設定しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
自分のセンスや笑いの好みに影響を受けた作品を教えて
子どもの頃に読んだ漫画などが その後の笑いの好みや自分自身のユーモアのセンスに影響することがあると思いますが、 「この作品に影響受けてるな~!」というものがあれば教えてください。
-
あなたの習慣について教えてください!!
あなたが習慣だと思って実践しているものを共有してくださいませんか? 筋肉トレーニングでも朝シャワーでも、あなたが習慣だなと思えば何でも構いません
-
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
screenupdatingが機能しなくて困ってます
Visual Basic(VBA)
-
Application.ScreenUpdatingがならなくなった
Visual Basic(VBA)
-
-
4
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
5
Application.ScreenUpdating=Falseを使うと・・・。
Access(アクセス)
-
6
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
7
VBA コードを実行すると画面が真っ白になる
Visual Basic(VBA)
-
8
excel VBAの構文の内容を訳してくださいませ!
PowerPoint(パワーポイント)
-
9
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
10
エクセルマクロで、別のブックが開いているかを判定したいのですが。
その他(Microsoft Office)
-
11
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
12
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
13
excelでVBA実行後に画面に残るゴミを無くしたい。
Excel(エクセル)
-
14
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
15
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
16
マクロボタンを押すたびに違う動作をしたい
Excel(エクセル)
-
17
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
18
マクロ実行時、ユーザーフォームにラベルのテキストが表示されません。
Access(アクセス)
-
19
VBA アクティブでないシートのセルを選択したり、クリアしたり
Excel(エクセル)
-
20
UserForm1.Showでエラーになります。
工学
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAでPDFを閉じるソース
-
エクセルで特定の列が0表示の場...
-
エクセルに張り付けた写真のフ...
-
ExcelのVBA。public変数の値が...
-
Excel・Word リサーチ機能を無...
-
メッセージボックスのOKボタ...
-
エクセルのマクロをセルの値に...
-
特定のPCだけ動作しないVBAマク...
-
一つのTeratermのマクロで複数...
-
マクロで空白セルを詰めて別シ...
-
Excel_マクロ_現在開いているシ...
-
VBAコードのインデント表示
-
VBAにて別ワークブック上の実行...
-
マクロ実行時、ユーザーフォー...
-
Excelで特定の文字のところで自...
-
Excel マクロでShearePoint先の...
-
毎日指定時刻に自動でエクセル...
-
wordを起動した際に特定のペー...
-
UWLSの記録でマクロを作成し使...
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルに張り付けた写真のフ...
-
ExcelのVBA。public変数の値が...
-
Excel マクロでShearePoint先の...
-
TERA TERMを隠す方法
-
ExcelVBAでPDFを閉じるソース
-
特定文字のある行の前に空白行...
-
Excel VBAからAccessマクロを実...
-
wordを起動した際に特定のペー...
-
マクロ実行時、ユーザーフォー...
-
エクセルで別のセルにあるふり...
-
マクロで空白セルを詰めて別シ...
-
ソース内の行末に\\
-
Excel_マクロ_現在開いているシ...
-
ダブルクリックで貼り付けた画...
おすすめ情報