何か注意書きをしても、気付く人は気づくし、気付かない人は気づかない。当たり前の話だ。しかも悪いことに、
- 注意書きに気づく人は、書かれているようなことを日頃から注意している。
- 注意書きに気づきにくい人は、どれだけ工夫を凝らしても、やっぱり気づいてくれない。
ことが多いような気がする(結果、期待した効果が得られない)。
※重大な事故や安全にかかわる場合を除く、軽微な事案についての話です。
そこで、どうしても着目して欲しい箇所には
- 色を付ける
- 強調文字にする
- 斜体にする
など様々な工夫が有るようだが、今回は動かしてみることに挑戦した。
といっても、難しいことは出来ない。そこで今回は、あたかも文字がセル内でスクロールしているかのような視覚効果を付してみた。
作戦は、こうだ。
- 「助走」用に、スクロールしたい文字に半角スペースを追加する。
- 順繰りに、先頭の文字を一番後ろに持っていく。
- 処理が一気に終わらないように、都度コードを中断する。
コードの中断には、Win APIのSleep関数を用いてみた。
まず標準モジュールの先頭に、以下を記載しておく。
Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
※Windows 7 以前の型は、「PtrSafe」を書かないでください。
次いで、文字を動かす部分を作る。今回は、動かしたい文字が記載されたセルを引数として受け取っている。
Sub CharacterScroll(target_range As Range) Dim str As String str = target_range.Value ' スクロール用の半角スペースを、文字数の3倍追加する。 str = str & WorksheetFunction.Rept(" ", Len(str) * 3) Dim i As Long Dim j As Long ' 3周させる。 For i = 1 To Len(str) * 3 ' 先頭の文字を一番後ろに移動させる。 str = Mid(str, 2) & Left(str, 1) target_range = str ' 一時停止。30コマ/秒(のつもりで)。 Sleep 1000 / 30 Next ' 最初に付けた半角スペースを削除。 target_range = Trim(str) End Sub
↓ 動かした結果 ↓ 。
「こんなもの動かしている暇が有ったら、その間に処理させろ」と怒られそうなので、使い処には充分注意しましょう。
参考まで。