人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

excelでマクロボタンを付けたファイルAがあります。そのマクロ動作はボタンを押すとダイアログを開き、ファイルを指定すると指定したファイルを開きコピー&Aのワークシートに貼り付け、それを元に計算の後結果を、A上の別のワークシートにコピー。先ほど指定されたファイルを閉じるという物。指定するファイルはCSVでファイルネームはバラバラ。数は特定のフォルダの中に約2000個。これを一度のボタン操作で完了させたい。できれば処理の終わったCSVファイルも削除したい。そんなマクロ。そのものズバリ希望です。お願いします。

●質問者: garyu
●カテゴリ:コンピュータ 趣味・スポーツ
✍キーワード:コピー ズバリ ダイアログ ネーム ファイル
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kamicha1
●60ポイント

http://homepage2.nifty.com/housaka/excel/vbafaq03.html

上記URLの「フォルダ内のすべてのブックを処理するには?(Windows)」を参照しています。

下記のコードを標準モジュールに貼り付けて、Excelファイルのあるフォルダ配下にDATAフォルダを作成し、そこに対象のCSVファイルをコピーしてSample_Workbooksマクロを実行してください。

Dim ActiveWorkBookName As String

Dim sFileName As String

Sub Sample_Workbooks()

Dim sFolderName As String

Dim sFileNameCount As Long

’対象フォルダの設定

’このExcelファイルのあるフォルダ配下のDATAフォルダを指定

sFolderName = ThisWorkbook.Path & ”¥DATA¥”

’CSVファイル名を取得

sFileName = Dir$(sFolderName & ”*.csv”)

ActiveWorkBookName = ActiveWorkbook.Name

’ファイル名の列挙が終わるまで実行します

sFileNameCount = 0

Do Until sFileName = ””

sFileNameCount = sFileNameCount + 1

’ブックを開きます

Workbooks.Open sFolderName & sFileName

’ブックに対する共通処理

Sample_Proc

’次のファイル名を取得

sFileName = Dir$()

Loop

MsgBox sFileNameCount & ”ファイルを処理しました。”

End Sub

’ブックに対する共通処理

Sub Sample_Proc()

’コピー&Aのワークシートに貼り付け、

Cells.Copy

Workbooks(ActiveWorkBookName).Activate

Sheets(”Sheet1”).Select

Range(”A1”).Select

ActiveSheet.Paste

Application.CutCopyMode = False

’それを元に計算

’ 〜計算処理を記述?(どういう計算かは不明なので詳細は省略)

’計算の後結果を、A上の別のワークシートにコピー

Workbooks(ActiveWorkBookName).Activate

Sheets(”Sheet1”).Select

Cells.Copy

’別のワークシート名がSheet2の場合

’このままだと、すべてのファイルがSheet2にコピーされてしまうので注意

’また、1ファイルの最大シート数は、公開されていませんが、あまり多すぎるのも無理があります。

’ということで、1CSVファイル1シートという考え方は避けたほうがいいと思います。

Sheets(”Sheet2”).Select

ActiveSheet.Paste

Range(”A1”).Select

Application.CutCopyMode = False

’コピー元のワークシートは、どうするのか?

Sheets(”Sheet1”).Select

Range(”A1”).Select

’コピー元ワークシートの消去(削除ではない)

Cells.ClearContents

’先ほど指定されたファイルを閉じる

Workbooks(sFileName).Close False

End Sub

http://www2.moug.net/app/bbs/thread.php?cat=exvba

Excel VBA を学ぶなら moug モーグ

ExcelVBAに関してご不明な点があれば、こちらでおたずねしては、いかがでしょうか?

◎質問者からの返答

ちょっと感動して泣きそうになりました(;_;)

本当にありがとうございました♪

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ