2008年04月19日

マクロを実感してみる〜?

初手だけじゃ Excel が自動で処理している実感がないかもしれない。そこで実際に処理が進んでいく様子を見てみようっていう趣向だ。

初期位置から全てのコマを一歩前進させるマクロ。特に危険はない。

前回、エディターでマクロコードが記述された module1 の内容を下のコードをコピペで差し替えてみてください。「一歩前進」 というマクロが登録されるハズです。

Option Explicit

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub 書式設定(objRange As Range, Orient As Long)
    With objRange
        .Orientation = Orient
        .Font.Bold = True
        .Font.Name = "HGP創英角ポップ体"
        .Font.Size = 14
        .HorizontalAlignment = xlJustify
        .VerticalAlignment = xlJustify
    End With
End Sub
Sub 一歩前進()
    Dim M As Long, N As Long
    
    For M = 1 To 3
        For N = 1 To 9
            If Not IsEmpty(Cells(N, 5 + M + 1)) Then
                Cells(N, 5 + M) = Cells(N, 5 + M + 1)
                Cells(N, 5 + M + 1) = Empty
                書式設定 Cells(N, 5 + M), 90
                
                Sleep 500
            End If
            If Not IsEmpty(Cells(N, 5 - M - 1)) Then
                Cells(N, 5 - M) = Cells(N, 5 - M - 1)
                Cells(N, 5 - M - 1) = Empty
                書式設定 Cells(N, 5 - M), -90
                
                Sleep 500
            End If
        Next N
    Next M
End Sub


解説は後、まずは実感してみようというわけだ。コマを初期位置に戻してください。そしてその状態を他の空きスペースにコピーしておきましょう。コマ全部が動くので戻すのが面倒臭くなりますから・・・


さて、準備完了。一歩前進マクロを いざ! 実行!!

・・・
・・・
・・・

えっ? 処理が遅いって??
わ・・・わざと遅くしたんですが・・・動きが見えるように・・・たらーっ(汗)

Sleep 500  を消すと通常の処理速度になります。このコードで 0.5秒停止しているので・・・


どうです? 自動実行の実感が湧いたでしょうか?

これだけのコードですが、かなり重要なポイントが結構あります。次回、解説しますね。


タグ:EXCEL マクロ
posted by Woody at 00:18| Comment(0) | TrackBack(0) | Excel マクロ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/93734751
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。