今回はPower Automete for Desktopを使って、Excelの金銭出納帳から弥生会計にインポートするデータを作成する手順について確認してみましょう。

結構長いことサボってました・・・

正直に言います。PowerAutomateでの勉強や新しいフローの作成、結構長いことサボってました。

以前つくったものをメンテして使い続けてはいますが、新しいことを全然していません。

コミュニティなどで情報収集はしていましたが、こうしたツールはやはり自分で手を動かさないとスキルが向上しないものです。

そろそろマジメに再開しようかなということで、とりあえずリハビリとしてPowerAutomateを使って「Excel」について何ができるか確認しておこうかと。

実際PowerAutomateでできるExcelの操作(アクションといいます、Excelオンラインを除く)は増えていて、本日時点でこれだけあります。

ただ、個人的な意見としてはExcel内で完結できる処理をPowerAutomateで扱うことについては否定的です。

関数やマクロを組み合わせて(必要であればPowerQueryなども)やった方が効率的だからというのが理由ですが、どこまでやれるか知っておくことはツールを利用する上で大事。

そこで試しにマクロなどのExcel本来の機能を使わずに、Excelでつくった金銭出納帳から弥生会計にインポートするデータを作成するフローを作ってみました。

広告

金銭出納帳からインポートデータを作成するフロー

では実際につくったフローを確認していきましょう。

フローに落とし込む作業手順

今回の前提としては

  • Excelの金銭出納帳を利用している(フォーマットは下図)
  • 消費税の免税事業者
  • 伝票形式でなく仕訳データ形式で取り込み
  • Excelのマクロなどは使わずにPowerAutomateの機能だけでインポート用のCSVファイルを作成する

としています。

今回自動化する作業の流れとしては

  1. Excel金銭出納帳のデータを読み取って、Excelを閉じる
  2. 転記用の新しいExcelを開く
  3. 1で読み取ったデータを、2のExcelファイルに弥生インポート形式にあわせて転記する
  4. 3で作成したExcelデータを読み取って、CSVファイルに書き出す

としました。

優秀な人がつくれば、Excelに転記なんかせずにデータのまま処理すると思いますが、不慣れな方でもイメージしやすいよう、実際の作業をそのままフローに落とし込むことを前提につくっています。

天才プログラマーになることが目標ではなく、業務を自動化・効率化することが大事ですから、少々格好の悪いコードでも自分で書ける・作れることを重視しましょう。

で、作成したフローがこちら。思ったよりも長いものになってしまいましたが、順番に確認していきます。

Excel金銭出納帳を読み取る

パソコンのデスクトップに作成した「PADテスト」フォルダ内の「金銭出納帳(PAD用).xlsx」を開いて、その中のデータを読み取っています。

他のパソコンのデスクトップにこのフォルダをコピーしても使えるよう、デスクトップのパスを読み取ってから対象のファイルを指定しています。

また読み取り範囲が変わっても対応できるよう、A列の最初の空白行を読み取って、読み取り範囲を決定しています。

ちなみにここで使っている「リージョン」というアクションですが、作業内容ごとにまとめておくもので特に機能はありません。

以前はコメントアクションを使って作業内容をメモしていましたが、こうやって作業内容ごとに分けておいた方が見やすくてわかりやすくなります。

転記用のExcelを起動する

先ほどはExcelファイルを指定して開きましたが、今回は新しい空白のファイルを開きます。特に難しい処理はありません。

出納帳データの転記

ここがメインの処理になります。

金銭出納帳のExcelファイルから読み取ったデータをFor eachの処理で一行ずつ取り出して、Excelファイルの該当するセルに貼付け(書き込み)をしていきます。

なお弥生会計のインポートデータの形式はこちらのサイトをご参照ください。

仕訳データの項目と記述形式(他製品から仕訳データをインポートする場合など)| 弥生会計 サポート情報

最初にExcelから読み取ったデータは次のようになっています。

For eachで取り出したデータはCurrentItemという変数に保存されていますので、貼り付けしたいデータは

%CurrenItem[番号]%

という形で指定します。

この番号は0から始まるので、例えば日付のデータについては

%CurrenItem[0]%

で指定できます。

また入金か出金かによって現金や相手科目の借方・貸方が変わりますので、IFアクションを使って入金欄か出金欄のどちらに数字があるか判断して処理を変えています。

もう一つ、Excelに書き込む行番号を順番にずらすため、Countという変数をつくって、For eachの処理が一回終わる度に、Countの数を増やす処理をして、このCount変数を使って書き込むセルを指定しています。

転記後のExcelを読み取りCSVファイルに書き出し

転記したExcelシートを読み取って、読み取ったデータをCSVファイルに書き込む処理をしています。

ここで問題になるのが日付データです。

最初に読み取ったExcelデータでは、日付が

2024/04/01 0:00:00

と時間まで入った形式になってしまっています。

このままCSVファイルにすると0:00:000もデータとして保存されるため、弥生にインポートしたときに不正なデータ形式としてエラーになります。

実は最初はExcelに転記する際に

「datetimeをテキストに変換」

というアクションを使って日付だけの形式に変換したのですが、CSVファイルに保存するとなぜか0:00:00の部分が消えていません。

そこでCSVファイルに保存する前の段階で

「データテーブル内で検索又は置換する」

というアクションを使って、「 0:00:00」(先頭にスペースあり)を消しています(置換後の空白は「%”%」と記述します)。

ちなみにこのアクションについて最初勘違いしていたのですが、「生成された変数」(DataTableMatches)をCSVファイルに書き出したところ、正しくデータが書き出されませんでした。

この変数にはどこが置換されたかという情報が格納されます。

置換後の情報は元々の対象となる変数(この場合はExcelData2)に保存されていますので、この変数をCSVファイルに書き出す必要があります。

この部分でかなり時間をロスしてしまいました・・・

保存したCSVファイルを弥生会計のインポート機能で取り込んだところ、無事インポートできました。

広告

プログラミングの入門としてはありかも

今回PowerAutomateを使って、弥生会計にインポートするファイルを作成しましたが、正直なところこのフロー自体は万人におすすめするものではありません。

その理由はスピード。

処理は問題無くできますが、目視で確認できる程度の速度で転記していくので時間がかかります。その間はパソコンで別の作業はしない方がいいでしょう。

ただExcelマクロにアレルギーを感じる方が、プログラミングの入門としてやってみるのはありなんじゃないかと思います。

見た目が一般的なプログラムのコードよりも見やすいので、慣れていない方にとっては、とっつきやすいのではないでしょうか。

今やChatGPTなどの生成AIに相談すれば、マクロのコードは書いてもらえますが、きちんと活用するにはやはり基礎的な理解は欠かせません。

プログラムの流れを理解するという意味で、ExcelをPowerAutomateで操作してみてはいかがでしょうか。

投稿者

加藤 博己
加藤 博己加藤博己税理士事務所 所長
大学卒業後、大手上場企業に入社し約19年間経理業務および経営管理業務を幅広く担当。
31歳のとき英国子会社に出向。その後チェコ・日本国内での勤務を経て、38歳のときスロバキア子会社に取締役として出向。30代のうち7年間を欧州で勤務。

40歳のときに会社を退職。その後3年で税理士資格を取得。

中小企業の経営者と数多く接する中で、業務効率化の支援だけではなく、経営者を総合的にサポートするコンサルティング能力の必要性を痛感し、「コンサル型税理士」(経営支援責任者)のスキルを習得。

現在はこのスキルを活かして、売上アップ支援から個人的な悩みの相談まで、幅広く経営者のお困りごとの解決に尽力中。

さらに、商工会議所での講師やWeb媒体を中心とした執筆活動など、税理士業務以外でも幅広く活動を行っている。
広告