Excelマクロを書くときは、小さく試してみるのはおすすめです。
オートフィルターで特定の科目を抽出するときの事例でまとめてみました。
特定の科目を抽出するオートフィルター
Excelの仕訳データで特定の科目を抽出するといったことがあります。
たとえば、このようなデータがあり、
Excel上だけで特定の科目をチェックしたいという場合。
オートフィルターを使います。Ctrl + Shift + Lです。
Excelの「テーブル」機能を使えば、自動的にオートフィルターは設定されるわけですが。
ただ、毎回これをやるとなるとタイヘンですし、自動で処理したいということであれば、マクロを書くことになります。
会計ソフトで予め抽出してデータをダウンロードすることもできますが、抽出とダウンロードを繰り返すことにもなり、1つのExcelファイルだけでやりたいというのが今回の前提です。
やり方はいろいろありますが、その1つの例ということでまとめてみました。
ちなみに、Excelマクロの設定はこちらの記事を。
Excelマクロでオートフィルター
Excelマクロを使い、オートフィルターで特定のデータを抽出することができます。
先ほどのこういったデータに、
オートフィルターを設定するには、
「Range(“A1”).AutoFilter」と書きます。
オートフィルターを設定したい起点を”A1″というように指定するわけです。
で、F5キーで実行すれば、
このようにオートフィルターを設定できます。
マクロで特定の科目のデータを抽出する場合には、こういった感じで書きます。
「Range(“A1”).AutoFilter Field:=5, Criteria1:=”コンサル売上”」
「Field」は列の指定。今回は抽出したいのが5列目の貸方科目なので「5」。
「Criteria1」は抽出条件の値(コンサル売上)という意味です。
このように貸方科目=コンサル売上のデータを抽出できました。
そのオートフィルターで抽出したデータを、別の新規シートに貼り付けて、
オートフィルターを解除できます。
オートフィルターで複数条件で抽出するには
前述までは”コンサル売上”という1つの条件で抽出しましたが、2つの条件で抽出することもできます。
「Operator:=xlOr, Criteria2:=”スポット売上”」と書きます。
「Operrator:=xolr」で複数条件をつなぎ、「Criteria2:=」で抽出したいもう1つの条件を指定すると、
このように2つの条件で抽出できます。
条件が3つ以上という場合は、
「Range(“A1”).AutoFilter field:=5, Criteria1:=Array(“コンサル売上”, “スポット売上”, “動画売上”), Operator:=xlFilterValues」と書くこともできます。
「Criteria1:=Array(“〇”,”□”,”△”」というように、3つの条件を配列で指定し、
「Operator:=xlFilterValues」でOR条件にしています。
すると、このように3つの科目でデータを抽出することができます。
これに前述のように新規シートに貼付けて、オートフィルターを解除することもマクロだとボタン1つでできます。
いざマクロを動かすとなると、プログラミングで書くことが長いほど敷居が高くなるのも事実です。
何からやればいいのかわからないということもあるでしょう。
そういうときは、小さく書いてみて、F8キーで1つずつマクロを動かしてみるというのがおすすめです。
それでエラーになっても、どこが違うのか的を絞れますし。
ChatGPTに教えてもらうにしても、的を絞っておくことで質問もしやすいです。
ということで、マクロを書いて効率化を目指すなら、
・小さくはじめてみる
・ちょっとずつ手を動かす
・「F5」や「F8」でマクロが動くか試す
・エラーが出たら調べる(ときにはChatGPTに教えてもらう)
・アウトプットしていく
というプロセスがいいと実感しています。
ということで、Excelマクロにチャレンジしてみたいという方は、参考にしてみていただければ。
今回使ったファイルはこちらにあります。
SOU-tkei-blog_サンプル_仕訳data
■編集後記
昨日はオフ。朝のタスク、ブログなどの習慣をこなして、カメラのトレーニングを。夜は読書、龍が如く8を進めました。
■息子(9歳)
昨日はパパとリハビリをしたあと、学校から持ち帰っているパソコンでお勉強を。
パパがカメラで写真を撮っていると「これ撮ってみて」と、デロリアンのトミカを貸してくれました。
■昨日の1日1新
・みなさまのお墨付き 森永ミルクココア
・Canon RPのマニュアルモードで撮影