Script事業案内エクセル以外トップエクセル(Excel)エクセル雑感ツイッターで出されたVBAのお題をやってみた最終更新日:2020-01-13ツイッターで出されたVBAのお題をやってみたツイッターで出題されたVBAの問題をやってみました。ツイッターのエクセルおよびVBA関係の人達の間では、いろいろと面白く勉強になる問題を出し合うという事が行われています。フォローして参加してみると楽しいと思いますよ。悪魔のCSV以前にも出題された方と同じ方からの出題です。カッコ」をやってみたツイッターで出たVBAのお題をやってみました。楽しかったので、VBAコードを掲載しておきます。最初にお題から受ける印象は、再帰処理を行うという事になると思います。ここに記録として残しておきます。一言で言うと、CSVと言う名のメチャクチャなテキストデータをCSVのつもりで処理できるようにするという事です。名前,数量,単価,金額,メモフライパン,2,1,020,2,040,このフライパンは1,020円にしては高性能!これは、CSVなのか・・・これはつまり、本来なら少なくともカンマを含む項目部分は"ダブルクォーテーションで囲われているべきものです。名前,数量,単価,金額,メモフライパン,2,"1,020","2,040","このフライパンは1,020円にしては高性能!"最低でもこのようになっているべきデータです。CSVなのですから、カンマくぎりなのですから。この元のCSV?をちゃんと人間が判断するように読めるVBAを作るという事です。作成すべきVBAのお題としては、VBAの関数(Function)を作成して、各項目の先頭文字位置を配列で返す。{7,9,15,21}これを返すFunctionを作れというものです。「数量項目*単価項目=合計金額」この条件を満たすカンマ位置という事です。詳細については、先のページを参照してください。Subとからせの時点で、ローカルウインドウ等で、変数rtnの中を確認してください。シートに出力しても良いですが、4つだけなのでローカルウインドウで十分でしょう。ツイッターのお題に対する回答なので、VBA解説は抜きにします。作成時間はちゃんと測ってないし、途中で別の事したりなのではっきりしませんが、たぶん1時間くらいだと思います。途中でツイッターやったりしてたので、大体これくらいじゃないかなーという程度の時間です。上記VBAはツイッターで速攻解答したコードをそのまま載せています。効率のよい、より良いVBAができるはずです。どのようなアルゴリズムをどのようにVBA実装すればよいか・・・そのあたりについては先の出題ページに順次掲載されると思いますので、見てみると良いでしょう。一度腕試しでチャレンジしてみるのも良いと思います。Next)|VBA入門7.マクロって何?VBAって何?|VBA入門8.セルに文字を入れるとは(Range,Value)|VBA入門9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説10.ひらがな⇔カタカナの変換|エクセル基本操作トップエクセル(Excel)エクセル雑感ツイッターで出されたVBAのお題をやってみたこのサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。GASスプレッドシート入門スプレッドシート応用GAS入門GAS応用トップエクセル(Excel)エクセル雑感ツイッターで出されたVBAのお題をやってみたこのサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。