質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

Q&A

解決済

2回答

10775閲覧

[VBScript] csvファイルの内容を編集する

naomoi

総合スコア15

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

0グッド

0クリップ

投稿2018/10/29 12:13

編集2018/10/29 13:52

vbsにて、csvファイルを読み込み、
以下のように編集することは可能でしょうか。
D&Dでスクリプトを実行することとします。

<実行前>
| A    B   C
――――――――――――
1|名前  性別  出身地 
2|tanaka 男   新潟
3|takeda 男   東京
4|ishida 男   東京
5|sato 男   東京

<実行後>
|   A   B C D   E
―――――――――――――――――――
1|tanaka 男  新潟 0001  PC 
2|takeda 男  東京 0002  PC
3|ishida 男  東京 1001 スマートフォン
4|sato 男  東京 1002  スマートフォン
5|

<内容>
・1行目を削除
・D列、E列に値を追加
※D列の値は、0001の次は0002みたいにコードで連番になるようにする
※E列の値には、D列の値が「00010999」の場合、E列の値が「PC」
D列の値が「1001
1999」の場合、E列の値が「スマートフォン」と表示されるようにする
実際に、csvファイル内の値の数が多いため、汎用性があるコード、
また、よろしければ一文一文のコードの説明や、F列、G列に値がある場合にどうコードを追加すれば良いか
ご教示頂けると幸いです。

ファイル編集には、filesystemobjectを使用すれば良い、splitを使用すると良いなど
googleで検索するとよく記載があるのですが、希望の動作になるようなサンプルがないため
現時点では解決困難となっております。(調査中)

お手数ですが、宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

実行するPCにExcelが入っているなら、Excelとして操作したほうが楽かと思います。
以下、サンプル。

VBA

1Option Explicit 2 3If WScript.Arguments.Count = 0 then 4 WScript.Quit(-1) 5End If 6 7Dim xls ' Excel 8Dim bk ' ワークブック 9Dim sh ' ワークシート 10Dim r ' 行数カウンタ 11Dim e ' E列 12 13' Excel関連のオブジェクト作成 14Set xls = CreateObject("Excel.Application") 15Set bk = xls.Workbooks.Open(WScript.Arguments(0)) 16Set sh = bk.Worksheets(1) 17 18' メッセージは無視する 19xls.DisplayAlerts = False 20 21' 1行目削除 22sh.Rows(1).Delete 23 24' 2行目以降に情報付加 25r = 1 26Do While sh.Cells(r, 1) <> "" 27 sh.Cells(r, 4).Value = "'" & Right("0000" & CStr(r), 4) 28 e = "" 29 If r >= 1 And r <= 999 Then 30 e = "PC" 31 ElseIf r >= 1001 And r <= 1999 Then 32 e = "スマートフォン" 33 End If 34 sh.Cells(r, 5).Value = e 35 r = r + 1 36Loop 37 38bk.Save ' 保存 39bk.Close ' ブック閉じる 40xls.DisplayAlerts = True ' メッセージ有効化 41xls.Quit ' Excel閉じる 42Set xls = Nothing ' オブジェクト解放

Excelが入っていない場合、FileSystemObject等での処理になります。
とりあえず今回は割愛します。

投稿2018/10/30 00:53

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

naomoi

2018/10/30 11:46

ご回答ありがとうございました。 助かりました。
guest

0

E列の説明が抜けてます。

投稿2018/10/29 12:21

iruyas

総合スコア1067

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

naomoi

2018/10/29 14:03 編集

失礼しました、質問内容を補記しました。
ttyp03

2018/10/30 00:13

ここは回答を記入する欄です。 修正依頼は質問本文下部にある「追記・修正依頼」からお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問