システムトレード用の開発ツールです。エクセルのVBAを駆使して最高のパフォーマンスを目指します。基本は無料
※今回使うのは「AutoFilterMode」です。
オートフィル機能のみに限ったことではないですが、マクロ記録を使えば結構な自動化は出来ます。
しかし中には記録できない作業もあるのでその場合は自作するしかありません。オートフィル機能をマクロ記録を使って記録した場合、恐らく以下のようなプロシージャが自動記録されます。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2008/5/16 ユーザー名 : 壱式
'
'
Range("A1:F1").Select '列Aから列Fまでオートフィル状態にする
Selection.AutoFilter
End Sub
このプロシージャを実行してもらえばすぐに分かることですが、これだと実行するたびにオートフィルが「ON」「OFF」状態に切り替わるだけで、オートフィルが「OFF」のみ「ON」にするという判別をしてくれる訳ではなさそうです。しかし実践では判別する場合の使用頻度の方が高いと思います。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2008/5/16 ユーザー名 : 壱式
'If ActiveSheet.AutoFilterMode = False Then 'オートフィルの有無を判別
Range("A1:F1").Select '列Aから列Fまでオートフィル状態にする
Selection.AutoFilter
End If
End Sub
上記の文は先にIF分岐でオートフィルの有無を判別してから、無い場合のみオートフィルを有効にするプロシージャです。このIF分岐中に使われている「AutoFilterMode」はオートフィルが有るときは「True」を返しオートフィルがない場合は「False」を返します。これでオートフィルが無い場合のみ、オートフィル状態にするプロシージャが出来ました。「then」以下の文をもっと複雑にすれば様々なオートフィルを制御できるようになります。

投稿者 システムトレーダー壱式 : 2008年05月16日 09:57
このエントリーのトラックバックURL:
http://systemtrader.info/cgi/mt/mt-tb.cgi/41