会社を卒業したのんちおじさん。

人生は知恵と工夫と思いやり!
優しさほど強いものはなく、本当の強さほど優しいものはない -ラルフ・W・ソックマン-

表計算大会「マクロ1」の模範回答

2007-03-03 17:54:22 | Excelのお話
先日のマクロ問題の模範解答というかひとつの方法としてエクセル標準機能の「オートフィルター」を使った回答が今月号に載っていました。

Sub マクロQ1()
  Selection.AutoFilter
  Selection.AutoFilter field:=4, Criteria1:="<>"
  ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=TrueEnd Sub

なるほどねえ、こっちのほうが早い、さすがプロですね、単に記録機能を使っただけという至極簡単なもので単純明快。

素人は人が作ったもののあらを探すのは比較的よくやります、ということで作ったのが下、上の状態ではカーソルが表の中の空白セル以外のどこかにないと動かないのです、それから印刷が終わったらフィルターを解除することにしました。

Sub マクロQ1()
  With Range(Cells(2, 1), Cells(18, 6))   'フィルターの範囲を指定
    .AutoFilter field:=4, Criteria1:="<>" '単価欄を指定
    .PrintOut copies:=1, collate:=True
    .AutoFilter              'フィルター解除
  End With
End Sub

とかく少しマクロが書けるようになると「らしい」ものを書こうとするのが人情、策を弄すると言うか策に溺れると言うか・・、なるべく標準機能を使わないで結果を出そうとあれこれやってしまいます、まあそれが大いなる楽しみなのですが。

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。