質問: ### 前提 以下のように縦にA~Eの設定項目と、abc1~の設定値が繰り返し並んでいるとします。 項目の最後にendの文字が必ず入ります。(テキストデータ) 設定項目=設定値 A=abc1 B=def1 C=ghi1 D=jkl1 E=mno1 end A=abc2 B=def2 C=ghi2 D=jkl2 E=mno2 end たまに、項目が抜けたりもします。以下の例でいうと項目Dが無いです。 A=abc3 B=def3 C=ghi3 E=mno3 end -----繰り返し----- ### 実現したいこと 文字列を以下のように表に当て込みたいです。 A B C D E abc1 def1 ghi1 jkl1 mno1 abc2 def2 ghi2 jkl2 mno2 abc3 def3 ghi3 空 mno3 ### 試したこと 正規表現で、改行をカンマ、endの文字列の後を改行にして、 単純に横に並べるところまでは出来ましたが、空のセルを挿入する方法がわからないです。 ご教授よろしくお願いします。
回答: 多くの指摘を受けている通り、ここはプログラムを作ってもらう場所ではありません。 ご自身で記載されたコードがないので具体的なアドバイスは致しかねます。 ですが追記・修正依頼を見る限りVBA初心者さんのようですので、何をどう調べれば実現できそうか、というところまでアドバイスさせていただきます。 まず、今回の目的の動作をシート関数だけで実現するのは難しいと思います。 実現するならVBAを利用することになりそうです。 VBAの基本になりますが、セルからデータを取得したり、セルに値をセットする関数は各所で使う必要がありますので、まずこれを覚えましょう。(Cells関数/Range関数) 処理の流れとしては、 1入力データをループ処理で1つづつ取得します。(ループ処理:For~Next/Do~Loopなど) 2取得した値が"end"なら、出力列を1つ下にずらします。(条件判断文:If~Else~EndIfなど) 3取得した値を「設定項目」と「設定値」に分割します。(文字列の分割:Split関数) 4「設定項目」から出力列を判断します。(条件判断文:If~Else~EndIfなど) 5出力列に「設定値」の値を出力します。(Cells関数/Range関数) 61に戻る といった感じになります。 最終データまでこれを繰り返すことで目的の処理が実現できるのではないかと思います。 まずはVBAのことやこのあたりの関数のことをご自身で調べながらがんばってみてください。 ご自身でコードを書いてみて、そのうえで行き詰ってからの質問であれば、きっと多くの方からアドバイスがもらえると思います。 がんばってください。