2011年5月21日土曜日

簡単なマクロ構築とボタン化

まずは簡単なマクロを組むことから始めた。

どんなものかっていうと、


こんなふうな、to doリストがあったとして、「思いついた日」というところにカーソルを合わせたまま、ボタンを押すと。。。


「思いついた日」には今日の日付、「終了予定日」には2週間後の日付が自動的に設定される。というもの。

では、ちょっとずつコメントも含めて、ソースコードを紹介。

まずは関数定義。

'「思いついた日設定」という関数を定義する
Sub 思いついた日設定()
    
'関数を終了する
End Sub


次に、ちょっとソースコードを省略する感じで書いてみる。
ActiveCellとは、現在カーソルが合っているセルのこと。

With ActiveCell

End With


では中身を埋めていく。

現在の選択しているセルに日付を入れる。

'ActiveCell →「現在選択しているセル」 
        'Value→セルに値(数値や文字列)
        'Date→日付関数
        .Value = Date
        .VerticalAlignment = xlVAlignCenter
        .Font.Size = 14


思いついた日と同じ行にある「終了予定日」のセルに、思いついた日から14日後の日付を設定。

'Offset(m,n)はオブジェクトからみて、
        'm行下、n行右のセルを対象にするという意味
        Set cel = .Offset(0, 2).Range("A1")

        ' 色は赤に設定
        cel.Font.ColorIndex = 3
        cel.Font.Size = 14
        cel.VerticalAlignment = xlVAlignCenter
        cel.Value = Date + 14


以下、全体のソースコード。


Sub 思いついた日設定()

    With ActiveCell

        .Value = Date
        .VerticalAlignment = xlVAlignCenter
        .Font.Size = 14
    
        Set cel = .Offset(0, 2).Range("A1")
        cel.Font.ColorIndex = 3
        cel.Font.Size = 14
        cel.VerticalAlignment = xlVAlignCenter
        cel.Value = Date + 14
        
    End With
 
End Sub



さて、このソースコードは命令だけを書いたもの。ボタンに組み込むには、別作業が必要。
excel2010や2007なら、

「開発」→「フォームコントロール」→「ボタン」

で、ボタンを設定。マクロの登録について、ウィンドウが自動で開くので、さきほど自分が書いたマクロを選択すれば完成。

*デフォルトでは、開発メニューはないはず。以下のページ参照。
Excel2010でコントロールツールボックスはどこ

0 件のコメント:

コメントを投稿