前提・実現したいこと
指定フォルダ内の全てのブックに対し、A1~最終行までがCSV形式で1セル内に記載されている文章を
「カンマ区切り」で列ごとにセル分割する処理
(Excelマクロ)
上手くいかないのですが、どこが悪いのかご指摘いただけますと幸いです。
ループはするのですが、何も処理されないまま閉じてしまいます。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
該当のソースコード
VBA
1Sub 指定フォルダーのExcelファイルを全て開いて処理() 2 3'フォルダ内のファイルを開く 4 5 Const DIR_PATH = "N:\リンク先" 6 Dim fl_name As String 7 8 fl_name = Dir(DIR_PATH & "*.xls") 9 10 Dim i As Long 11 Dim wb As Workbook 12 13 Do While fl_name <> "" 14 i = i + 1 '後程、最初のブックと最後のブックに処理を追加するためこの処理を入れています。 15 16 Set wb = Workbooks.Open(Filename:=DIR_PATH & "\" & fl_name) 17 18 19 'カンマ区切りの行を、セルに分割する 20 21 Set lastRow = wb.Worksheets(1).Range("A1").End(xlDown).Row 22 23 'マクロの記録で以下のコードを作成したので、良く理解出来ていない部分がございます。 24 Selection.TextToColumns Destination:=wb.Worksheets(1).Range("A1"), DataType:=xlDelimited, _ 25 TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ 26 Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _ 27 :=Array(Array(1, 1), Array(2, 2), Array(3, 1), Array(4, 1), Array(5, 1)), _ 28 TrailingMinusNumbers:=True 29 30 wb.Saved = True 31 wb.Close 32 33 fl_name = Dir() 34 35 Loop 36 37End Sub 38
「ダメでした」「うまくいきませんでした」
他人には何も伝わらない表現方法なので、具体的に起きた現象を書いてください。
申し訳ございません。
ループはするのですが、何も処理されないまま閉じてしまいます。
あ、こちらはあくまで回答者から質問者への「質問への追記修正依頼」なので、
質問本文を編集して返してください。
こちらのコメント欄はデフォルト非表示のため、全ての人が見るとは限りませんので。
あと、できればそのExcelに記載されているサンプルデータもご提示いただけたら。
"\*.xls"
とありますが使っているのはexcel2003なのですか?シート名などはすべて同じですか?
mts10806様
仕様を分かっておらず申し訳ございませんでした。
ご指摘くださりありがとうございました。
サンプルデータというのはCSV形式のファイルのことでしょうか。
>A1~最終行までがCSV形式で1セル内に記載されている文章
↑これです
data様
最初にCSVファイルを「.xls」ファイルへ変換する処理を行っております。
シート名がそれぞれのファイルで異なっておりましたので修正いたしました。
ありがとうございます。
何もエラーは出ていませんか?
このプログラムを動かした場合
Set lastRow
の部分で型が一致しませんと出ると思われます。
mts10806様
回答者様のおかげで何とか出来そうなので後は頑張ってみます。
ありがとうございました。
なるほど。具体的なデータもあればコード調整も可能かと思いましたが、
ヒントで解決できそうならそれも良しですね。がんばってください。
date様
おっしゃる通りそのエラーが出ておりましたが、
setを消すとエラーが消えたので大丈夫そうです。
ありがとうございます。
回答2件
あなたの回答
tips
プレビュー