No.5ベストアンサー
- 回答日時:
こんにちは
横から失礼します
#3で示されているコードとなさりたい事には、かなり違いがありますね
>もととなるAというエクセルファイル
これは、VBAを実行するブックを指していますか?
ここがはっきりしないとダメです。(重要なところです)
しかし、お急ぎなようなので
もととなるAというエクセルファイル=VBA実行ブックとして 回答を進めます
コードでは別フォルダに新しく(コピー)ブックが出来ますが、、
同じファイルに上書きをすると元データ(ファイル)を書き換えてしまいますが良いのでしょうか?
示されているコードを同じフォルダに上書き保存する場合の改造は
①不具合を直します(すでに出ている回答に重複しますが)
FileName = Dir(FolderName1 & “*xls*”) はファイル名を返すので
Workbooks.Open FileName だけではダメだと思います
Workbooks.Open FolderName1 & FileName ですね。
②同じパスに保存
FolderName2 & FileName ではなく
Workbooks(Workbooks.Count).SaveAs FolderName1 & FileName
そもそも上書きなので .Close SaveChanges:=True かな
③ループで、もととなるAというエクセルファイルを対象から外す必要があります。
もととなるAというエクセルファイルがVBAを実行するブックだった場合
If ThisWorkbook.Name <> FileName Then
ブックを開く
コピー実行
保存して閉じる
End If
FileName = Dir()
④既存ブックへの上書き保存なので
アラートを出さないようにする 一例
Application.DisplayAlerts = False
保存して閉じる
Application.DisplayAlerts = True
今回は上書きなので
.Close SaveChanges:=True でOK?
コピーについての参考
ThisWorkbook 実行ブック
ActiveWorkbook 開いた直後のブック(他のブックがアクティブになるまで)
Workbooks(Workbooks.Count) 現状の最後に開いたブック
この場合、Workbooks(Workbooks.Count)とActiveWorkbookは同じ
No.4
- 回答日時:
No.3です。
ベテラン回答者様に聞いてみては良かったのにと思いますが。
こんな初級レベルなジジィでなくとも。
⇒ここでAAAグレードの回答を続けている位ですから、どの言語でも解決可能な方なのかなと。
>貼り付ける範囲を変えたいのですがうまくいきません。
曖昧ではなく、
・貼り付けたい範囲を変えたいとはどういう意味なのか?
・上手くいかないとは何が起きているのか?
と言った情報は必要かと。
取り敢えず
Workbooks.Open FileName
ここは格納しているフォルダが不明(Dir関数はファイル名しか取得しない)なので、
Workbooks.Open FolderName1 & FileName
ですね。
---
If FolderName1 = “False” Then
Exit Sub
End If
この部分は全く意味をなさないと思いますよ。
手前で変数にPathを代入していますし、その有無をチェックしている訳じゃないですから。
If Dir(FolderName1, vbDirectory) = “” Then
Exit Sub
End If
こうかな?
でも他で言うならWorkBookオブジェクトで宣言しSetステートメントにて代入された変数を用いるのが、後々わかりやすいかも。
No.3
- 回答日時:
セルに書式設定(塗りつぶしやフォントの変更・罫線など)がなければ、コピペではなく値の代入でしょう。
>同じフォルダーにある同じ形式の複数のエクセルファイルの同じシートA
同じシートAとはシート名の事ですか?
どのブックにも存在している?
>同じフォルダーにある同じ形式の複数のエクセルファイル
参考リンクは既に出ていますので割愛しますが、間違っても自分自身に値を貼り付けないよう気を付けて下さいね。
どうしてもコピー・ペーストしたいのです。その部分に画像的なものがありまして。
同じシートAとはシート名です。どのブックにも存在しています。ブック名はランダムです。
下記でいうと
Sub フォルダの中に含まれるファイルのファイルを順に変更する2()
Dim FolderName1 As String
Dim FolderName2 As String
Dim FileName As String
FolderName1 = “C:\処理前\”
FolderName2 = “C:\処理後\”
If FolderName1 = “False” Then
Exit Sub
End If
FileName = Dir(FolderName1 & “*xls*”)
Do While FileName <> “”
Workbooks.Open FileName
Cells(1, 1) = 1
Workbooks(Workbooks.Count).SaveAs FolderName2 & FileName
Workbooks(Workbooks.Count).Close
FileName = Dir()
Loop
End Sub
フォルダを変える必要なく、貼り付ける範囲を変えたいのですがうまくいきません。
No.2
- 回答日時:
おはようございます。
参考になりそうなリンクを貼っておきます。
フォルダの中にある全てのExcelファイルに同じ処理をするマクロ
https://officevba.info/fileikkatsushori/
ThisWorkbook.Path
https://daitaideit.com/vba-get-filepath/#mokuzi3-1
値だけなら、コピーではなく、変数に入れておくのもありかと。
毎回コピーでも良いですが。
Dim myAllDat as Variant
myAllDat = Range("AM1:bb12").Value ’変数に値を一括で入れる
Range("AM1:bb12").Value = myAllDat ’セルに一気に書き出し
取り合えず、No.1の方の記録と、上記である程度可能かと思います。
不明な点がありましたら、コードをUpして、エラーや、どううまくいかない
かなどを書かれると、回答があると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel に貼り付けた図形が、保...
-
ロータス1-2-3のファイルをエ...
-
エクセルが勝手に開く
-
VBA 新規ファイルを元ファイル...
-
エクセルのファイル間で、行番...
-
jtrim 1.53cが正常な動きをし...
-
至急!教えてください!!「Mic...
-
Wordで作成したものをUSBに保存...
-
Macで作成したファイル(Word)を...
-
パワーポイントのスライドショ...
-
Accessで自身のバックアップ方法
-
pcゲームのセットアップが出来...
-
エクセルで「ページレイアウト...
-
パソコン買い換えたいのですが...
-
メールでCADデータが送られまし...
-
It works! が表示されるという...
-
office起動時に設定画面が表示...
-
utorrentを起動する度にdatファ...
-
エクセルで「名前を付けて保存...
-
ACCESSからexcelブックを開いて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel に貼り付けた図形が、保...
-
アクセスVBAで既に開いているエ...
-
エクセルが勝手に開く
-
ロータス1-2-3のファイルをエ...
-
VBA 新規ファイルを元ファイル...
-
ファイル名の末尾に文字を追加...
-
エクセルの表示サイズ変更(画...
-
[大至急!]ExcelSheetFreeの使...
-
Excelファイルをコピー不可にす...
-
ワードに貼られたエクセルのリ...
-
エクセルはシートに関数が入る...
-
エクセル関数のHyperLinkでの警告
-
EMBEDについて
-
エクセル、編集中でロックされ...
-
エクセルでメールの添付ファイ...
-
EXCELのVBAでやりたいことがあ...
-
お世話になっています. x軸は時...
-
xlsファイルの開き方(excel無...
-
OneDriveでエクセルの表が縦に分断
-
エクセルVBA 他のファイルから...
おすすめ情報