パソコンカレッジ スタッフのひとりごと

パソコンスクールのスタッフが、
初心者から上級者まで役立つ情報をお伝えします。

セルのイルミネーション?

2011-12-28 09:00:32 | ExcelVBA
クリスマスも過ぎ、今年もあとわずかになりました。皆さん、お変わりありませんか?

さて、今日は、エクセル上でイルミネーションのようなものを作ってみましょう。
何の役にも立ちませんが、クリスマスの余韻ということで大目に見てください。

エクセルを起動して、Visual Basic Editorを表示します。
「挿入」、「標準モジュール」とクリックして、さあ、コーディング開始です。

Sub main()
  Dim r As Range
  Randomize
  For Each r In Range("A1:J10")
    r.Interior.Color = RGB(Int(Rnd() * 255), Int(Rnd() * 255), Int(Rnd() * 255))
    DoEvents
    ThreadSleep 1000000
    r.Interior.ColorIndex = 0
  Next
End Sub

Private Sub ThreadSleep(ByVal n As Long)
  '時間稼ぎのプロシージャ
  Dim i As Long, a As Long
  For i = 0 To n
    a = Sqr(i) * Sqr(i)
  Next
End Sub

画像も載せておきます。



結果がどうなるかは、実際にプログラムを実行してください。

コードの簡単な解説です。

For each Next構文で、セル範囲A1:J10のセルを順にrに代入しています。
rの塗りつぶしの色をRGB関数で指定しています。
引数は、左から順番に赤の割合、緑の割合、青の割合を0~255で指定します。

この値を、Rnd関数で指定しています。
Rnd関数は、乱数を発生させる関数で、0~1未満の数をランダムに発生させます。

ただし、本当にランダムにするには、事前にRandomizeステートメントを記述しておく必要があります。
DoEventsは、面白いステートメントで、客観的に自分を見直す役割をします。
繰り返し処理の描画がうまくいかない場合には、この一文を入れます。

ThreadSleep は、時間稼ぎのためのプロシージャです。引数を大きくすると動きが遅くなります。
反対に小さくすると早くなります。
私のPCでは、1000000がいい感じでした。適宜調整してください。
そのあと、セルの塗りつぶしをなしにしています。


今年一年、お世話になりました。
来年も実りのある一年になることを祈っています。

新年にまたお会いしましょう。


だい

コメント (18)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 今週のおすすめ記事 | トップ | 謹賀新年 »
最新の画像もっと見る

18 コメント

コメント日が  古い順  |   新しい順
お世話になりました。 (NARU)
2011-12-28 19:08:24
こんばんは。

なかなかコメントは残せませんでしたが、いろいろと参考になる記事があり、助かりました。

来年もよろしくお願いします。
返信する
ご苦労様でした。 (天の人)
2011-12-29 11:49:22
今日は。
今年一年このサイトにて、多くの事を学びました?
実践には程遠い状況ですが、有り難う御座いました。

迎える2012年もよろしくお願い致します。

ご家族と共に良い年末、年始を過ごされますように・・・
返信する
NARUさんへ (だい)
2011-12-29 13:17:06
今年もあとわずかになりましたね。
充実した年であったと推察します。

良い年をお迎えください。
来年もよろしくお願いします。
返信する
天の人さんへ (だい)
2011-12-29 13:18:31
今年も一年ありがとうございました。
来年もよろしくお願いします。

良い年をお迎えください。
今日の上田市は、快晴です。
返信する
来年もよろしくお願いします (possi)
2011-12-29 16:25:55
こんにちは、possiです。

いつもブログ訪問をありがとうございます。
PCに弱い私には、勉強になることばかりの情報ですね。

また訪問いたします。
来年もよろしくお願いします
返信する
試してみました (Truth&Hope)
2011-12-29 20:47:54
セルのイルミネーションを試してみました。
エクセルはいろいろな事ができるんですね。

C言語やC++は分かるのですが、VBAやVBの記述方法は苦手なので、全くではないですが分かりません。
でも、こんな事ができるなら時間があればですが勉強してみようと思います。

これからもよろしくお願いします。
返信する
Unknown (紅葉ハウス)
2011-12-30 14:44:57
だい様

ご訪問ありがとうございます

PC得意でないので来年は

教わりたいと思っています

良いお年をお迎えください
返信する
お世話になりました (Matthew)
2011-12-30 19:58:11
パソコンカレッジの皆さんには、大変、役に立つ情報を、わかりやすく記事にしてくださり、ありがとうございました。
本当に、助かりました。
来年も、どうぞよろしくお願いいたします。

みなさん、お身体に気を付けて、良いお年をお迎えください。
返信する
今年も (こうしん)
2011-12-31 02:19:53
こんばんは!!
今年も日々有難うございました
大変な一年でしたが夢を持って
前進していきたいですね!
来年も宜しくお願いします
良いお年お迎えください
返信する
おせわに・・・ (よっこたん)
2011-12-31 13:54:59
悩んだ時には必ずガレッジさんのブログでお勉強させていただきました。
何時も御訪問頂き有難うございます。
来年も宜しくお願い致します。
来年も素敵な一年でありますように心から願っております
返信する

コメントを投稿

ExcelVBA」カテゴリの最新記事