質問タイトルにあるように、任意のファイルを選択して、その中にある全ての(50個以上)ファイルの中のシート全て値のみ貼り付けする方法を教えていただけないでしょうか?
下記のプログラムを元に、少し変えたいです。
・フォーマットという名前のフォルダではなく、任意に選択したフォルダにしたいです。
・ファイルの中にあるシートは”確認用”だけでなく、開くファイルによって60ぐらいシートがあるものもあり、”存在するシート全て”にしたいです。
ご迷惑をおかけしますが、宜しくお願い致します。
---
Sub Sample()
Dim buf As String
Dim fPass as String
fPass=Thisworkbook.pass & "\フォーマット\"
buf = Dir(fPass & "*.xls")
Do While Len(buf) > 0
Workbooks.open Filename:=fPass & buf, UpdateLinks:=0
Worksheets("確認用").Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Workbooks(buf).save
Workbooks(buf).close
buf = Dir()
Loop
End Sub
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんばんは、
ブックの拡張子、古いみたいだけれど、、良いのでしょうか?
値貼り付けでなければ処理は簡単だけれど、、値のみ、、ですかね
コピーしたシートに値貼り付けしているようですけれど貼り付けは、新規シートで良いのですか?
最大300シート位できると言う事になりそうですが、、大丈夫?
シート名は変えずで良いの?重複した時は?
やり取りする時間が無いと思うので、 サンプルを
Sub Sample()
Dim folPath As String, buf As String
Dim MyBk As Workbook
Dim Ws As Worksheet
Set MyBk = ActiveWorkbook
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = True Then
folPath = .SelectedItems(1)
End If
End With
If folPath = "" Then Exit Sub
Application.ScreenUpdating = False
buf = Dir(folPath & "\*.xls*")
Do While Len(buf) > 0
With Workbooks.Open(Filename:=folPath & "\" & buf)
For Each Ws In .Worksheets
Ws.Cells.Copy
MyBk.Activate
MyBk.Worksheets.Add after:=Worksheets(Worksheets.Count)
MyBk.ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Next Ws
.Close SaveChanges:=False
End With
buf = Dir()
Loop
Application.ScreenUpdating = True
End Sub
未検証ですが、参考まで
ご丁寧に、ありがとうございます!
元のコードの不備まで指摘してくださり、ありがとうございます。。
記載いただいたコードを拝見し、やってみます。
ちなみに、新規シートではなくて大丈夫です。
そうなんです。。とてもたくさんのシートを値張りしていかなければならず。
このマクロを使う前に、名前の設定などは済ませておくつもりです!
No.1
- 回答日時:
こんばんは
>任意に選択したフォルダにしたいです。
フォルダ指定のダイアログ等を用いて選択するようにしてはいかがでしょうか?
例えば、
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = True Then folderPath = .SelectedItems(1)
End With
みたいな感じ。
>”存在するシート全て”にしたいです。
ブック内のシートをループで処理すれば良いのでは?
例えば、当該ブックがアクティブな状態とするなら、
For Each sht In ActiveWorkbook.Worksheets
sht.UsedRange.Cells.Value = sht.UsedRange.Cells.Value
Next sht
とか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで指定シート以外の選択
-
特定の文字を含むシートだけマ...
-
【ExcelVBA】全シートのセルの...
-
実行時エラー'1004': WorkSheet...
-
別のシートから値を取得するとき
-
エクセルの絶対参照の一括操作...
-
ユーザーフォームに入力したデ...
-
シートが保護されている状態で...
-
エクセルのマクロでアクティブ...
-
ブック名、シート名を他のモジ...
-
excelのマクロで該当処理できな...
-
セルの値によって、シート見出...
-
VBAエクセルの非アクティブシー...
-
Excelマクロのエラーを解決した...
-
XL:BeforeDoubleClickが動かない
-
VBAでオブジェクト変数にsetし...
-
エクセルのマクロで条件一致の...
-
エクセルVBA Ifでシート名が合...
-
VBA 存在しないシートを選...
-
【エクセル】オプションボタン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelのマクロで該当処理できな...
-
特定の文字を含むシートだけマ...
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
別のシートから値を取得するとき
-
実行時エラー'1004': WorkSheet...
-
Excelマクロのエラーを解決した...
-
XL:BeforeDoubleClickが動かない
-
ブック名、シート名を他のモジ...
-
同じ作業を複数のシートに実行...
-
エクセルのシート名変更で重複...
-
VBAで指定シート以外の選択
-
VBAで同じシート名のコピー時は...
-
シートが保護されている状態で...
-
ExcelのVBAのマクロで他のシー...
-
実行時エラー1004「Select メソ...
-
IFステートの中にWithステート...
-
Worksheet_Changeの内容を標準...
-
【Excel VBA】Worksheets().Act...
-
VBA 存在しないシートを選...
おすすめ情報