すべてのシートに同じ処理をするにはこれでいい?
フォルダ内にあるすべてのブックのすべてのシートに同じ処理をするマクロを書いたのですが思った動きをしてくれませんでした。
ちなみにやりたい事は!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!で囲まれたところだけ変えれば、シート数がバラバラな複数のブック内のすべてのシートで同じ処理が行われるようになる事です。
今回は複数のブックのA列を選択してコンマで区切るようにしています。
いろんなとこからコピペでつなぎ合わせたんですがどこがわるいんだろう?コンパイルはできてしまうのでどこを直せばいいのやら自力で見つけられません。お助けください。
環境はExcel2007 Windows7です。
Sub Allfile()
Dim PATH As String
Dim KTS As String
PATH = Application.InputBox("編集したいファイルがあるフォルダのパスを入力。", "入力", Type:=2)
KTS= Application.InputBox("編集したいファイルの拡張子を入力(ドットもいれる)。", "入力", Type:=2)
Application.ScreenUpdating = False '画面の更新をしないようにして処理速度up
Dim fileNmCol As Collection 'ファイル名格納コレクション
Dim tempFileNm As Variant
Dim fullPath As String
Set fileNmCol = New Collection
tempFileNm = Dir(PATH + "*KTS", vbNormal) 'Dirにより、ファイル名を取得フォルダ配下にあるファイル名を順次fileNmに格納する。
Do While tempFileNm <> "" 'ファイル名をfileNmColに追加する
fileNmCol.Add (tempFileNm)
tempFileNm = Dir()
Loop
For Each tempFileNm In fileNmCol 'ファイルの数だけ繰り返し ↓以下ブックごとの処理
fullPath = PATH + tempFileNm 'ファイルのフルパスを設定指定して、Excelブックを開く
Workbooks.Open fullPath
Dim Ws As Worksheet 'ワークシートの変数を用意
For Each Ws In Worksheets 'シートの数だけ繰り返し ↓以下シートごとに対する処理
Ws.Activate 'Ws.Activate」がないと、はじめのシートのみの実行となります。
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True 'A1行を選択してコンマ区切りにする
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Next Ws
Next
Application.ScreenUpdating = True
End Sub
お礼
こんにちは。 回答ありがとうございます。 Ver3.0ではこの関数はありませんでした・・・ やっぱり最新版を使うべきなんでしょうかね・・・ 参考になりました。ありがとうございました。