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

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

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

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

Q&A

解決済

2回答

1053閲覧

VBSを使ってcsvファイル名を変更したい

ayapre

総合スコア6

VBScript

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

0グッド

0クリップ

投稿2018/04/27 01:07

前提・実現したいこと

フォルダ内にある大量のcsvファイルのファイル名をvbsで一気に変更しています。
普段は3つのセルの情報を抽出してますが、今回さらにもう1つのセルの内容もファイル名に付けたいです。
中身を修正”d”を追加し実行したら以下のエラーメッセージが発生しました。

行:24 文字:1 エラー:この変数は宣言されていません。:’d’ コード:800A01F4 ソース:Microsoft VBSscript実行時エラー

該当のソースコード

Option Explicit Public a, b, bk, c, ex, f, gf, i, l, sh, so, x, y Set so = CreateObject("Scripting.FileSystemObject") Set gf = so.GetFolder(".") Set ex = CreateObject("Excel.Application") ex.Application.DisplayAlerts = False ex.Visible = False For Each f In gf.Files If LCase(so.GetExtensionName(f.Name)) = "csv" Then Set bk = ex.Workbooks.Open(gf & "\" & f.Name) Set sh = bk.Worksheets(1) a = sh.Range("A2").Text x = a Call z a = x b = sh.Range("B2").Text x = b Call z b = x c = sh.Range("D2").Text x = c Call z c = x d = sh.Range("H2").Text x = d Call z d = x bk.Close Set sh = Nothing Set bk = Nothing f.Name = a & "_" & b & "_" & c & "_" & d &".csv" End If Next ex.Quit Set ex = Nothing Set gf = Nothing Set so = Nothing MsgBox("Finished!") Sub z y = Array("\", "/", ":", "*", "?", Chr(34), "<", ">", "|") For i = 0 to 8 x = Replace(x, y(i), "") Next End Sub

試したこと

4つめのセルの情報
d = sh.Range("H2").Text
x = d
Call z
d = x
を追加した

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答2

0

処理は確認していませんが、エラーについては、

Vbscript

1Public a, b, bk, c, ex, f, gf, i, l, sh, so, x, y

上記でdが宣言されていません。

投稿2018/04/27 01:11

編集2018/04/27 01:12
sazi

総合スコア25184

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

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

ayapre

2018/04/27 01:27

ありがとうございます。そこに d を追加したら進みましたが違うエラーが出ました 31行目 f.Name = a & "_" & b & "_" & c & "_" & d & ".csv" が書き込みできませんとエラーが出ました ここもdを追加したのですが、おかしいですか?
sazi

2018/04/27 01:36

最初のエラーは、変数の宣言についてのエラーですから、今回のエラーは別です。 変更しようとしている名前が既に存在していないか確認してみて下さい。
ayapre

2018/04/27 01:50

ありがとうございます! 確認しましたが変更しようとしているファイル名がダブることはないのです。。他にどんな問題がありますか? 行:31 文字:1 エラー:書き込みできません。 コード:800A0046 ソース:Microsoft VBSscript実行時エラー
sazi

2018/04/27 02:01

そのファイルに対して、権限はありますか?
ayapre

2018/04/27 02:07

回答ありがとうございます!! 権限はあるのですが、ひとつのファイルが開いてもないのに誰かが開いてるという現象が起きていました。 なんどもエラーを出してなんかおかしなことになっていたのでしょうかわかりませんが フォルダをコピーしてやり直したらできました!! ご丁寧に対応いただきありがとうございましたm(_ _"m)
guest

0

自己解決

Public a, b, bk, c, d, ex, f, gf, i, l, sh, so, x, y

dを追加して宣言したらできました。

投稿2018/04/27 02:09

ayapre

総合スコア6

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

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

ayapre

2018/04/27 02:15

ここへ書き込むことではないのかもしれませんが このサイトで質問し解決するのが初めてでよくわかっていなくて。 こんな感じで完了させるのでよかったのでしょうか? 回答いただいた方へ何かお礼のようなものや評価など抜けていることがあるのではないでしょうか・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問