都道府県ごとのブックにバラけたトマトの作付面積のデータを、一つのシートにまとめようと試みています。
転記元のブックは「1北海道」、「2青森」・・・「47沖縄」という順番で単一フォルダ内に並んでおります。
このフォルダ内の順番の通りにシートに転記したいのですが、
以下のマクロ(あるサイト様から拝借しました)を用いて転記すると順番がめちゃくちゃになってしまいます。
何か改善策はないものでしょうか?お詳しい方、どうぞよろしくお願い申し上げます。
転記に用いたマクロ
記
Sub ブックの転記()
Dim myDir As String, myName As String, myBook As Workbook
Dim motodata As Range, sakidata As Range
Dim 転記先 As Worksheet, 転記元 As Worksheet
Set 転記先 = ThisWorkbook.ActiveSheet
Application.ScreenUpdating = False
'集計用のブックがあるフォルダ名を指定
myDir = "C:\Users\Desktop\野菜データ"
myName = Dir(myDir & "\" & "*.xls")
Do While myName <> ""
'↓転記先の最新レコード位置を取得する
Set sakidata = 転記先.Range("XFD2").End(xlToLeft).Offset(0, 1)
'↓(1)指定した名前のブックを開いて変数に格納する
Set myBook = Workbooks.Open(Filename:=myDir & "\" & myName)
'↓(2)転記元を取得する。
Set 転記元 = myBook.ActiveSheet
Set motodata = 転記元.Range("A8:A47")
'↓(3)転記先に貼り付ける
motodata.Copy sakidata
'↓(4)開いたブックを閉じる
myBook.Close
myName = Dir()
Loop
End Sub
以上
No.2ベストアンサー
- 回答日時:
とりあえず、今のソースをそのまま使用したい場合は、ファイル名を以下のように変えて下さい。
1北海道.xls -> 01北海道.xls
2青森.xls -> 02青森.xls
・・・途中省略
9XX.xls -> 09XX.xls
上記のように、1~9を01~09に変えてください。
その後、今のマクロを実行してください。
もし、上記の名前の変更を手作業で毎回するのがいやな場合は、以下のようなバッチファイル
を作ってください。(ファイル名をchange.batとします)
------------------------------------
rename 1北海道.xls 01北海道.xls
rename 2青森.xls 02青森.xls
・・・途中省略
rename 9XX.xls 09XX.xls
------------------------------------
このファイルをexcelファイルがあるフォルダにおきます。
コマンドプロンプトを呼び出し、このフォルダに移動します。
そこで、change.batと入力するとファイル名が変更されます。
もし、ファイル名を変更せずに行ないたい場合は、以下のようにします。
新しいシートを作成し、A列に都道府県毎のファイル名を記入します。
A1->1北海道
A2->2青森
・・途中省略
A47->47沖縄
このA1~A47までのセルの内容に拡張子(.xls)を付加してファイルを読み込むようにします。
このやり方を望まれる場合は、その旨補足してください。
お返事が遅れまして、申し訳ありませんでした。
大変丁寧にご教示いただき、誠にありがとうございました。
ファイルの名前を変えてやってみます。
後々のことをちゃんと考えて名付けるべき、ということですね。
ご協力に感謝申し上げます。
No.3
- 回答日時:
ANo1です。
まったくトンチンカンな回答をしてしまいました。
申し訳ありませんが、ANo1は無視してください。
お騒がせしてすみません。m(__)m
お返事が遅れてしまい、申し訳ありません。
ご丁寧に教えていただけただけで、大変ありがたく存じます。
このたびは、お手数をおかけいたしました。
No.1
- 回答日時:
こんにちは
ループの処理順序が
> Dir(myDir & "\" & "*.xls")
で示されている様に、.xlsファイルを指定してはいますが、順序等はシステムに任せているので、それなりの順になってしまうものと思います。
ご提示の「1北海道」、「2青森」・・・「47沖縄」の順序でよいのなら、そのままファイル名の先頭の番号を利用して明示的に順序を制御してあげれば宜しいかと思います。
例えば以下のような感じです。
For n = 1 To 47
myName = Dir(myDir & "\" & n & "*.xls")
' コピーの処理などをここに入れる
Next n
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのマクロについて教え...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAでテキストボックス...
-
別ブックをダイアログボックス...
-
【ExcelVBA】インデックスが有...
-
VBSでExcelのオープン確認
-
エクセルマクロで任意のファイ...
-
2つ目のコンボボックスが動作...
-
ExcelVBAの質問です。
-
VBS Bookを閉じるコード
-
WSHによるExcelのセルコピー&...
-
VBA シートをコピーする際に Co...
-
マクロVBA 1シートをまとめ...
-
VBAについて勉強中です。 Dim b...
-
VBA コードを実行すると画面が...
-
複数のブックからデータを転記...
-
【マクロ】違うフォルダにある...
-
エクセルVBAが途中で止まります
-
Visual Basic VB 教えてくださ...
-
別ブックからの取込み保存エラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
VBA 別ブックからコピペしたい...
-
【ExcelVBA】インデックスが有...
-
VBA コードを実行すると画面が...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBAで別のブックにシートをコピ...
-
VBA 実行時エラー 2147024893
-
VBA シート名が一致した場合の...
-
ユーザーフォームの切り替えに...
-
【マクロ】違うフォルダにある...
-
【Excel VBA】書き込み先ブック...
-
VBS Bookを閉じるコード
-
Excelマクロ 該当する値の行番...
-
VBAで複数のブックを開かずに処...
-
Excel2007VBAファイルの表示に...
-
VBA アプリケーション定義また...
おすすめ情報