Sub MoveData() Dim i As Integer For i = 0 To 1000 Step 4 Range("E2").Offset(i, 0).Value = Range("D4").Offset(i, 0).Value Range("D4").Offset(i, 0).ClearContents Range("G2").Offset(i, 0).Value = Range("F4").Offset(i, 0).Value Range("F4").Offset(i, 0).ClearContents Range("H2").Offset(i, 0).Value = Range("T4").Offset(i, 0).Value Range("T4").Offset(i, 0).ClearContents Next i End Sub
会社が作成した Excel の勘定科目内訳明細書を、税務ソフト読込用のフォーマットに合わせるためのマクロを、Bing AI に考えてもらいました。
会社作成の Excel は、典型的なエクセル方眼紙で、まず、これをセル結合のない表形式に直す必要があります。
シートが1枚だけなら、エクセル方眼紙を PDF に出力して、その PDF を Word に食べさせて、得られた表を Excel にコピペする…としてもエクセル方眼紙を直せるのですが、シートの枚数が多くなると厳しい。
エクセル方眼紙であっても、使いたい部分をコピー&ペーストで直に Excel に値として貼り付けることで、セル結合は解除され、マクロで加工する余地がある状態にできます。
表の形としては崩れているものの、崩れ方が規則的なので、これを正しいフォーマットにするときこそ、マクロの出番です。
まず、1 セット分、ずれた位置から正しい位置に移すコードを Bing AI に考えてもらって、次のセットに移してそれを繰り返させるコードを考えてもらったのが、上のコードです。
ちなみに当初は
For i = 1 To 1000 Step 4
だったのですが、これでは意図どおりに動作せず、ここは自分でコードを読み解くことで、初期値を 0 に手直して、正規化された表を得ることができました。
Bing AI でマクロのコードを書いてもらうことは、人間が暗記や調べものをすべきことを代行してもらうことなのですね。AI の出力物を直せる力が、人間に求められていると感じました。
その他の手直し
このマクロで得られた表は、空き行だらけなので、全体にフィルタをかけ、「空白」のある行のチェックを外せば詰まった表が得られます。
これで、読込用のフォーマットにそのままコピー&ペースト(値貼り付け)できるようになりました。