ツイッター出題回答
ツイッターのお題「CSV編集」

ExcelマクロVBAとエクセル関数についての私的雑感
公開日:2020-04-25 最終更新日:2020-04-25

ツイッターのお題「CSV編集」


ツイッターに出されたお題をやってみるシリーズです。
今回のお題は、CSV編集です。


ツイートへのリンク

VBSにしてみた

VBAでも良いのですが、たまにはVBSも良いかと思い作ってみました。

Option Explicit

Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")

Dim var
For Each var in WScript.Arguments
  Call WriteCsv(objFSO.getFile(var).Path)
Next

Set objFSO = Nothing

Sub WriteCsv(argFile)
  'Set objFSO = CreateObject("Scripting.FileSystemObject")
  Dim inFile, outFile
  Dim rec, i, j, ary1, ary2, ary3

  Set inFile = objFSO.OpenTextFile(argFile, 1, False)
  Set outFile = objFSO.OpenTextFile(Replace(argFile, ".csv", "_new.csv"), 2, True)

  Do Until inFile.AtEndOfStream
    rec = inFile.ReadLine
    ary1 = Split(rec, ",")
    ary2 = Split(ary1(0), "/")
    ReDim ary3(UBound(ary1))
    For i = 0 To UBound(ary2)
      ary3(0) = ary2(i)
      For j = 1 To UBound(ary1)
        ary3(j) = ary1(j)
      Next
      outFile.WriteLine Join(ary3, ",")
    Next
  Loop

  inFile.Close
  outFile.Close
End Sub

せっかくVBSなので、複数ファイルドラッグにも対応しています。
○○.csv
↓
○○_new.csv
として、編集後のcsvを出力しています。

特に解説はしませんが、VBSの場合、デバッグが大変ですね。
VBAである程度作成して、それを基にしてVBSに書き直す方が良いと思います。

ツイッターのお題に対する回答なので、とりあえずやってみたというものです。
したがって、コードの書き方で特段に工夫したところとかは特にありません。



同じテーマ「ツイッター出題回答 」の記事

ツイッターで出されたVBAのお題(悪魔のCSV)をやってみた
「VBAで導関数を求めよ」ツイッターのお題をやってみた
ツイッターのお題「君の名は?」
ツイッターのお題「CSV編集」
アルファベットの26進(ツイッターお題)
ナンバープレート数字遊び:ツイッターお題
サロゲートペアに対応した自作関数(Len,Left,Mid,Right)
迷路にネコが挑戦したら、どうなるかな…
迷路ネコが影分身の術を体得したら…
VBAで漢数字を算用数字に変換


新着記事NEW ・・・新着記事一覧を見る

Excelの新機能「リストとセル内配列」:1つのセルに複数の値|エクセル入門(2026-09-28)
Excel関数クロスワード(2026-09-26)
Excelショートカットキークイズ(2026-09-23)
Excel関数名クイズ(2026-09-21)
気ままに一手|リレー将棋(2026-09-20)
ITエンジニアがトラブルを避けるための法律・契約入門|エクセル雑感(2026-09-18)
ITエンジニアなら知らないと恥ずかしい数学20選|エクセル雑感(2026-09-17)
ITエンジニアのための税金と社会保険のお話|エクセル雑感(2026-09-15)
ITエンジニアのための経理・会計・簿記入門|エクセル雑感(2026-09-12)
「Python in Excel」入門:コードを読むための基礎知識|エクセル関数応用(2026-09-10)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.Excelショートカットキー一覧|Excelリファレンス
5.RangeとCellsの使い方|VBA入門
6.FILTER関数(範囲をフィルター処理)|エクセル入門
7.マクロとは?VBAとは?VBAでできること|VBA入門
8.繰り返し処理(For Next)|VBA入門
9.メッセージボックス(MsgBox関数)|VBA入門
10.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ