
簡略化と空白セルが詰められてしまう現象の修正方法を教えてください
複数のエクセルを集計するのに使用しています
集計用のエクセルでワンプッシュで別フォルダから100件までのエクセルが読み取れるようになっています。コピペで作成しているため簡単にできないかと思い相談させていただきました。
また、データを読み込むと元のエクセルには空白セルがあるのですが取り組んだエクセルには空白セルが詰められてしまっています。この現象も対策できるのでしょうか?
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2008/11/12 ユーザー名 :
'
ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\3D検査書\検査データ\a (1).csv", _
Destination:=Range("A1"))
.Name = "a (1)"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
a(2)~a(99)省略
ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\3D検査書\検査データ\a (100).csv", _
Destination:=Range("A1"))
.Name = "a (1)"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
No.2ベストアンサー
- 回答日時:
> コピペで作成しているため簡単にできないかと思い相談させていただきました。
これはNo.1さんの仰るとおりFor~Nextで繰り返し処理にします。
> また、データを読み込むと元のエクセルには空白セルがあるのですが
> 取り組んだエクセルには空白セルが詰められてしまっています。この現象も対策できるのでしょうか?
.TextFileConsecutiveDelimiter を Falseにしてください。
あと読み込むデータの詳細が不明でしたが、不要と思われる項目を削除しました。
もし動作がおかしい様でしたら項目を追加してみてください。
Sub Macro2()
Dim i As Long
Dim conn As String
For i = 1 To 100
conn = "TEXT;C:\3D検査書\検査データ\a (" & i & ").csv"
' aと(の間にスペースがあるのは良いのか?
ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:=conn, Destination:=Range("A1"))
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileConsecutiveDelimiter = False 'Trueから変更(空白セル詰め対応)
.TextFileCommaDelimiter = True
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
.Delete '追加
End With
Next
End Sub
No.1
- 回答日時:
100回繰り返している処理をサブプロシジャ化して、それを100回コールするようにします。
呼ぶ側は引数として1~100の番号を呼ばれる側に渡します。呼ばれる側は、その番号を使って、入力ファイル名などを特定します。詳細は、添付画像を参照してください。赤文字の部分が主な修正ポイントです。「空白セルが詰められてしまう」のは、.TextFileColumnDataTypes = Array(1) のせいだと思います。添付画像のように Array(1,1,2,1,・・・) のようにします。これが何を意味するかというと、セルの書式設定に相当し、1=標準、2=文字列を表します。要するに、空白が詰まってしまう列に対して、「2」を指定すれば良い(はず)です。この例では、3カラム目を文字として指定しています。
※添付のソースはテストを行っていません(文法チェックもしていない)ので、コーディングミスがあったらごめんなさい。

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) マクロを短くする 1 2023/01/15 00:11
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Excel(エクセル) EXCEL関数(数式)を教えてください 2 2022/06/08 18:32
- Visual Basic(VBA) エクセルで、1つのセルで上書き足し算して セルの範囲を指定できますか? パソコン初心者です。 お時間 3 2023/07/05 06:13
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Access(アクセス) エクセルのマクロについて教えてください。 2 2023/02/04 14:20
- Excel(エクセル) このコードに追記事項の仕方を教えて下さい。 以下のコード内容に出てくる。セルH3が空白の場合、エラー 4 2023/08/03 00:22
- Visual Basic(VBA) EXCELのセル相互同期用のVBAでの不具合 3 2022/08/10 11:44
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
尿検査前日に自慰行為した時の...
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
尿検査の前日は自慰控えたほう...
-
VLOOKUP関数を使用時、検索する...
-
値が入っているときだけ計算結...
-
リンク先のファイルを開かなく...
-
検便についてです。 便は取れた...
-
2つの数値のうち、数値が小さい...
-
彼女のことが好きすぎて彼女の...
-
【Excelで「正弦波」のグラフを...
-
MIN関数で空白セルを無視したい...
-
EXCELで式からグラフを描くには?
-
一番多く表示のある値(文字列...
-
Excel 数値の前の「 ' 」を一括...
-
小数点以下を繰り上げたものを...
-
ある範囲のセルから任意の値を...
-
excelのIF関数 A,Bの大きいほ...
-
EXCELで条件付き書式で空白セル...
-
値が入っている一番右のセル位...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
イタリアから帰国する際、肉製...
-
2つの数値のうち、数値が小さい...
-
健否~書類の書き方~
-
VLOOKUP関数を使用時、検索する...
-
値が入っているときだけ計算結...
-
小数点以下を繰り上げたものを...
-
エクセルで空白セルを含む列の...
-
EXCELで条件付き書式で空白セル...
-
リンク先のファイルを開かなく...
-
ある範囲のセルから任意の値を...
-
精子に血が・・・
-
エクセルで数式の答えを数値と...
-
風俗店へ行く前のご飯
-
エクセル指定した範囲からラン...
-
一番多く表示のある値(文字列...
-
Excel 数値の前の「 ' 」を一括...
-
ワードのページ番号をもっと下...
-
MIN関数で空白セルを無視したい...
おすすめ情報