同じ日付の行を2行ずつ作成するExcelのマクロ

Excle_その他

作成の動機

月次の作業において、顧問先の日々の売上データをExcelで入力し、それをExcelのマクロで入力用データに変換して会計ソフトに取り込んでいます。

例えば8月分のデータを入力する場合には、作業の開始時に 8/1(木)から8/31(土)までの日付を入れているのですが、

2019/10/1以降は消費税の軽減税率が導入されますので、軽減税率(8%)の売上と標準税率(10%)の売上の両方がある場合には、同じ日付の行が2行ずつ必要になります。

同じ日付の1行目には軽減税率の売上データを入力し、2行目には標準税率の売上データを入力する、といったことになると思います。

この日付作成の作業を手作業でやってもそれほど手間がかかりませんが、作業を行う頻度が高いので、Excelのマクロを作成しておくことにしました。

Excelのファイル(xlsmファイル)のダウンロード

こちらです → date.xlsm

使用方法

  • 作成を開始する日付(この例では8/1)の前日の日付(この例では7/31)が入力されていること
  • 前日の日付のすぐ下(日付の作成を開始する位置)にカーソルが置いてあること

が動作の前提です。

Moduleを分けて作成しました。

  • date_create 作成を開始する日付以降の31日分の日付と曜日を作成します。
  • date_double 作成された日付を2行ずつにします。

ここまでで同じ日付の行が2行ずつ作成されます。月末の日付が31日でない月の場合には行が余分に作成されますので、余分な行を削除してください。

これ以降は表示を見やすくするために作成してみたものです。

  • paint 1行おきに色を付けます。
  • tax_rate 1行おきに8%と10%の表示をします。

すべてをまとめて実行する場合には、Module「batch」を実行してください。

実行結果は下の通りです。

Excelのマクロの実行方法

Excelのメニューで「開発(L)~マクロ(PM)」を選択すると下の図の画面が表示されますので、実行するマクロを選択して「実行(R)」をクリックしてください。

注意点

前述のすべてのModuleについて、実行する際に「日付の作成を開始する位置(前掲の画像の場合ではB3セル)」にカーソルが置いてあることが前提です。

Excelのマクロの中で、「selection」を使用してそのセル位置を参照して処理を行っているためです。

また、このワークシートの場合は日付がB列に入力されていますが、C列でもD列でも、どの列に入力されていても構いません。マクロの実行前にカーソルを置く位置はC列又はD列の、日付の作成を開始する位置に合わせてください。

毎日のように軽減税率の売上と標準税率の売上が発生する場合には、最初から同じ日付の行が2行ずつ用意されていた方がデータ入力がしやすいと思われますが、ほとんどが軽減税率の売上でたまに標準税率の売上が発生するという場合には、日付を1行ずつ用意しておくだけにしておいて必要なときに行をコピーした方が良いと思われます。

single_insertというモジュールは、

今現在カーソルが置かれているセルを含む行 をコピーして、

その行のすぐ下の行 に挿入します。

お願い

期待した結果が得られない場合は お問い合わせフォーム よりお問い合わせ下さい。

改善に取り組みたいと思います。

タイトルとURLをコピーしました