
No.7ベストアンサー
- 回答日時:
以下のマクロを標準モジュールへ登録してください。
Const folder As String = "D:\goo\data2"
は、転記元のファイルを格納しているフォルダ名です。
あなたの環境に合わせて適切に設定してください。
-----------------------------------------------
Option Explicit
Public Sub 個人名シート転記()
Const folder As String = "D:\goo\data2"
Dim fname As String '転記元ファイル名
Dim wbm As Workbook '転記元ブック
Dim sname As String 'シート名
fname = Dir(folder & "\*.xlsx")
Do While fname <> ""
Set wbm = Workbooks.Open(folder & "\" & fname)
sname = wbm.Worksheets(1).Name
ThisWorkbook.Worksheets(sname).Range("A1:C3").Value = wbm.Worksheets(1).Range("A1:C3").Value
wbm.Close
fname = Dir()
Loop
MsgBox ("完了")
End Sub
No.6
- 回答日時:
補足ありがとうございました。
>ファイル1のシート名は個人名、貼り付け先のファイルに同じく個人名のシートがあり、そこに貼り付けるイメージです。
ファイル1のシート名は、個人名ということですが、
シートの数は、1つでしょうか。それとも、2つ以上ありますか。
2つ以上ある場合、どれが、個人名かは、マクロでの判断は難しくなります。
例えば、"山田","総務","Sheet1"の3つのシートがあった場合、
人間なら"山田"が個人名のシートであると判断できますが、マクロではできません。
個人名のシートがある位置がわかっていれば、対応可能ですが、
個人名のシート位置はきまってないでしょうか。
(例 一番左側に個人名のシートがある。もしくは、左から2番目に個人名のシートがある。等です)
No.5
- 回答日時:
補足要求です。
>ファイル1を開いて、そのファイルのA1〜C10セルを、所定のファイルのファイル1シートのA1〜C3に貼り付け、ファイル2のA1〜C3を開いて、所定のファイルのファイル2シートのA1〜C3セルに貼り付ける
ということですが、
1.「ファイル1のA1:C3のセルを所定のファイルのファイル1シートのA1:C3に貼り付け」
が正しいと理解しましたが、いかがでしょうか。(A1:C10ではなくA1:C3)
2.ファイル1のシート名は、どのようになっていますか。
シート名が判らないと、どのシートのA1:C3を貼り付けるのかがわかりません。
3.貼り付け先ののシート名は、以下の理解であってますか。
ファイル1のファイル名=ABCD.xlsx とすると
貼り付け先のシート名=ABCD
4.貼り付け先のシートは、100個のファイルの数分、全て、そろっている前提であってますか。
5.貼り付け先のブックにマクロを記憶すると理解していますが、間違いないでしょうか。
ありがとうございます。
1は誤植でした。
A1〜C3です。
2、3ですが、
ファイル1のシート名は個人名、貼り付け先のファイルに同じく個人名のシートがあり、そこに貼り付けるイメージです。
貼り付け先のファイル名は、まとめファイルという名前です。
4,5はご認識の通りです。
No.4
- 回答日時:
Dirの件。
URLの記事は読んでみました?
ファイル = Dir(パス & "*.xlsx")
'パス配下拡張子「.xlsx」の最初のファイル名を返す
ファイル = Dir
'引数なしDir …引数を引き継いだ次のファイル名を返す
と。Dirはこれだけで、次のファイル名、次のファイル名と自動で内容が変わっていくんです。
ファイル = Dir
Msgbox ファイル
ファイル = Dir
Msgbox ファイル
みたいに、MsgBoxを加えて複数書いてみて下さい。
Msgboxで、[ファイル]に入ったDirの内容が変化してることがわかると思います。
Dirそのものには何も足したり引いたりしていないのに…
個人的にDirは気持ち悪い関数だなって思ってます。
ありがとうございます。
リンク先を読んでいたのですが、
'引数なしDir …引数を引き継いだ次のファイル名を返す
というところは見落としていました。
理解しました!
No.3
- 回答日時:
コメント拝見しました。
「コピー元」と「貼り付け先」でペアの関係があるのですね。
その場合は、予めペアの繋がりをまとめた情報を用意する必要出てきます。
参照用のシートを用意するか、マクロ内に書き込むか。
ペアでファイル名に共通した法則、要素があれば・・・例えば
コピー元 abcde★.xlsx
貼り付け先 abcde▲▲.xlsx
みたいな感じであれば…
フォルダ内のファイルを開く。→abcde★.xlsx
開いたファイル名から貼り付け先のファイル名を作る。
abcde★.xlsx から★を除いて▲▲をつける →abcde▲▲.xlsx
abcde▲▲.xlsxを開く。
abcde★.xlsx からコピーして abcde▲▲.xlsx に貼り付ける。
開いたファイルを閉じる。
ペアの数だけ繰り返し。
…みたいな流れになるかなぁ。
複雑になってくるので、マクロ作成に慣れてないと厳しいです。
何度もありがとうございます。
記録マクロをベースに、少しコードを変更するレベルでしかマクロを使えないので難しそうですね。
ちょっと勉強してみます。
2回目のご回答のところで、わからないところがあるのですが、
ファイル = Dir
というのはどのような意味なのでしょうか?
それ以外のところは解読できたのですが、ここだけ意味がわかりません。
No.2
- 回答日時:
例えば、作業の対象になるファイルが1つのフォルダにまとめてあるなら、
100個のファイル名をわざわざ書き並べなくても、
「このフォルダの中の全ファイルに対して実行して」
というような書き方ができます。
Sub ブックをすべて開いて処理()
Dim パス As String, ファイル As String
パス = "D:¥test¥"
ファイル = Dir(パス & "*.xlsx")
Do While ファイル <> ""
Workbooks.Open パス & ファイル
【実行する処理内容をココの間に書き込む】
Workbooks(ファイル).Close
ファイル = Dir
Loop
End Sub
(こちらより引用、編集)
↓
フォルダー内のすべてブックを開いて同じ処理を行う 《Do~Loop・Dir》|Excel|ヘルプの森 https://www.helpforest.com/excel/emv_sample/ex10 …
ありがとうございます。
元ファイルは同じフォルダに入れています。
明日トライしてみようと思いますが、今回想定しているのは、ファイル1を開いて、そのファイルのA1〜C10セルを、所定のファイルのファイル1シートのA1〜C3に貼り付け、ファイル2のA1〜C3を開いて、所定のファイルのファイル2シートのA1〜C3セルに貼り付ける…という操作です。そのような場合でも、このやり方でできますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】プリントスクリーンした画像をエクセルに貼付して印刷したい 6 2022/11/30 20:11
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行して 作業フォルダの中にある PDFファイル名を 3 2023/07/01 15:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで印刷する方法 エクセ...
-
Word2003と2007で、開いたとき...
-
VBAを一度起動するとずっと出て...
-
VBAで、VBProjectへのアクセス...
-
【マクロ】エラーが発生⇒実行時...
-
エクセルマクロが海外PCで開けない
-
【マクロ】宣言は、何のために...
-
コピーしたファイルのマクロを...
-
アクセスでファイルを開いたと...
-
Visual Basic Editorが起動しな...
-
エクセルで名前をつけて保存を...
-
エクセル2013vbaで、見えない名...
-
マクロを設定したのに、拡張子...
-
【マクロ】その時、その時で変...
-
マイクロソフトのオフィス2007...
-
エクセルの関数を使って、セル...
-
エクセルが最小化しないように...
-
エクセルでマクロでテキストデ...
-
個人用マクロブックにマクロを...
-
Excelでこの式の意味をおしえて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】宣言は、何のために...
-
VBAを一度起動するとずっと出て...
-
エクセル終了時の保存確認メッ...
-
コピーしたファイルのマクロを...
-
excelファイルに使われているVB...
-
別のパソコンでエクセルのマク...
-
マクロを消すマクロは不可能?
-
Excelマクロ ファイル名が変わ...
-
VBA マクロ実行時エラー’1004Ra...
-
アクセスでファイルを開いたと...
-
昨日まで動いていたエクセルの...
-
EXCEL マクロ クリップボードク...
-
Excelが勝手にシート移動してし...
-
excelでpersonal.xlsを常に開く...
-
excelが別プロセスで起動してし...
-
エクセルマクロ実行中に別ファ...
-
【マクロ】エラーが発生⇒実行時...
-
マクロを設定したのに、拡張子...
-
外部データを取り込むマクロ
-
エクセルマクロが海外PCで開けない
おすすめ情報
Dirのあとになぜカッコがないのかがわかりません。