
VBAについてのご質問です。
”データ処理ファイル”というファイルの”データ処理シート”というシートの”B1:S110000”セルをコピーして
同じフォルダ内のすべてのファイルの”あ”というシートの”B1:S110000”セルにペーストしたいです。
自分なりに下記のように作ってみましたが一部でエラーが出てしまいうまく動作しません。
お手数をおかけしますが、どのように修正すればよいかご教示いただけますでしょうか。
また、全然違うようでしたらサンプルコードをいただけないでしょうか?
差し出がましい質問で大変恐縮ですが、ご教示いただけると幸いです。
Sub 粗さデータ処理()
Dim fileName As String
Dim wsName As String: wsName = "粗さデータ" '対象ワークシート名
Application.ScreenUpdating = False '各ファイルの変更処理を表示させない
Application.DisplayAlerts = False '保存時メッセージを表示させない
ChDir ThisWorkbook.Path
fileName = Dir("*.xlsx?") 'フォルダ内の最初のエクセルファイル名を取得
Do While fileName <> ""
If fileName <> ThisWorkbook.Name Then 'マクロのあるファイルでなければ
With Workbooks.Open(fileName) 'ファイルオープン
ThisWorkbook.Worksheets("粗さデータ処理シート").Range("B1:S110000").Copy_
.Worksheets(wsName).Range("B1").Select
.Close savechanges:=True '保存&クローズ
End With
End If
fileName = Dir() 'フォルダ内の次のエクセルファイル名を取得
Loop
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
ThisWorkbook.Worksheets("粗さデータ処理シート").Range("B1:S110000").Copy_でエラーが出ています。
No.3ベストアンサー
- 回答日時:
もし、Cドライブ上にない場合は、ChDirを使用しない方法のほうが良いです。
かなり書き換えますが、以下のようにしてください。
これから、外出します。戻りは、夕方以降になります。
Sub 粗さデータ処理()
Dim fileName As String
Dim filePath As String
Dim wsName As String: wsName = "粗さデータ" '対象ワークシート名
Application.ScreenUpdating = False '各ファイルの変更処理を表示させない
Application.DisplayAlerts = False '保存時メッセージを表示させない
filePath = ThisWorkbook.path
fileName = Dir(filePath & "\" & "*.xls?") 'フォルダ内の最初のエクセルファイル名を取得
Do While fileName <> ""
If fileName <> ThisWorkbook.Name Then 'マクロのあるファイルでなければ
With Workbooks.Open(filePath & "\" & fileName) 'ファイルオープン
ThisWorkbook.Worksheets("粗さデータ処理シート").Range("B1:S110000").Copy .Worksheets(wsName).Range("B1")
.Close savechanges:=True '保存&クローズ
End With
End If
fileName = Dir() 'フォルダ内の次のエクセルファイル名を取得
Loop
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
本当にありがとうございます!
ファイルがCドライブ上になかったみたいでした。新しくいただいたコードで動作できました。
丁寧で迅速な対応をしていただき本当にありがとうございます。
No.2
- 回答日時:
>処理が行われない状態となってしまいました。
コピー先に、コピーされないということでしょうか?
With Workbooks.Open(fileName) 'ファイルオープン
の行にブレイクポイントを設定し、実行したとき、そこで止まると思いますが、そのあと、1ステップずつ実行して、期待した動作をするか、確認してください。
また、ブレイクポイントで、止まった時、fileNameにマウスをあてると、ファイル名が表示されます。そのファイル名が、期待した結果であることを確認してください。
一点、気になるのは、マクロを格納したブックが、Cドライブであれば、問題ありませんが、Cドライブでない場合、
ChDir ThisWorkbook.Path
は、マクロを格納したフォルダに移動してくれません。
マクロを格納したブックは、Cドライブ上にありますか。
No.1
- 回答日時:
ThisWorkbook.Worksheets("粗さデータ処理シート").Range("B1:S110000").Copy_
.Worksheets(wsName).Range("B1").Select
の2行を
ThisWorkbook.Worksheets("粗さデータ処理シート").Range("B1:S110000").Copy _
Destination:=.Worksheets(wsName).Range("B1")
にしてください。
Copyの後に空白を1つ入れてから継続の_を入れます。
継続行を指定した場合、2行目は、Destination:=を指定しないとエラーになるようです。
1行で、
ThisWorkbook.Worksheets("粗さデータ処理シート").Range("B1:S110000").Copy .Worksheets(wsName).Range("B1")
と書いてもOKです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel VBAについて。こんな動作をさせるためにはどう書けばよいでしょうか。
Visual Basic(VBA)
-
VBAのエラー表示の対処法について
Visual Basic(VBA)
-
Excelで合計を求めたいです
Excel(エクセル)
-
-
4
VBAで特定の文字が入った行をコピーして貼り付けたい
Visual Basic(VBA)
-
5
不要項目の行削除方法について
Visual Basic(VBA)
-
6
以下のプログラムの実行結果はどうなると思いますか? その理由も教えてください。
Visual Basic(VBA)
-
7
Visualbasicの現状について教えてください
Visual Basic(VBA)
-
8
VBA 2次元配列の出力
Visual Basic(VBA)
-
9
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
10
excelVBAについて。
Excel(エクセル)
-
11
excelVBAについて。
Excel(エクセル)
-
12
Excel マクロについて詳しい方、ご教示ください。 『行数が毎回変わる元データの、A列に「1」と入
Visual Basic(VBA)
-
13
VBA Application.Matchについての質問です
Visual Basic(VBA)
-
14
VBAについて教えて下さい
Visual Basic(VBA)
-
15
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
16
エクセルのブック名の付け方
Excel(エクセル)
-
17
エクセルで、数字ではない値(文字列)が入った場合の計算式を教えてください。
Excel(エクセル)
-
18
Excelの罫線を消す方法
Excel(エクセル)
-
19
実務の処理について。
Excel(エクセル)
-
20
Excelのデータの入力規則の問題点について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba textboxへの入力について教...
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
Vba FileSystemObject オブジェ...
-
複数のExcelファイルをマージす...
-
【マクロ】並び替えの範囲が、...
-
エクセルのVBAコードと数式につ...
-
【マクロ】値を渡されたプロシ...
-
VBAでユーザーフォームを指定回...
-
【ExcelVBA】5万行以上のデー...
-
VBAでセルの書式を変えずに文字...
-
Web画面の文字をVB6で取得したい
-
VBAでCOPYを繰り返すと、処理が...
-
VBA ユーザーフォーム ボタンク...
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
エクセルのマクロについて教え...
-
エクセルの改行について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba Array関数について教えてく...
-
VBAでCOPYを繰り返すと、処理が...
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】シートの変数へ入れ...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
【マクロ】並び替えの範囲が、...
-
Vba セルの4辺について罫線が有...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
VBAでユーザーフォームを指定回...
-
【マクロ】開いているブックの...
-
エクセルの改行について
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
算術演算子「¥」の意味について
-
Excelのマクロについて教えてく...
-
改行文字「vbCrLf」とは
-
ワードの図形にマクロを登録で...
-
VBAの「To」という語句について
-
【マクロ】変数を使った、文字...
おすすめ情報
ご回答本当にありがとうございます。
ご指摘いただいたとおりに修正したところ、エラーは出ませんが処理が行われない状態となってしまいました。
度々申し訳ございませんが、このような場合はどのように対処すればよろしいでしょうか?
よろしくお願いいたします。