advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 27303 for マクロ (0.014 sec.)
[[20171207113758]]
#score: 2167
@digest: 0ab23501b8377e3f636c26f38f7c08bd
@id: 75012
@mdate: 2017-12-07T08:46:26Z
@size: 4886
@type: text/plain
#keywords: foldername1 (68125), foldername2 (59986), 8194 (26361), macro11 (23027), 前¥ (17139), 前¥” (15497), 後¥” (15497), ¥” (13096), 実効 (12340), 名ma (11544), ロ名 (8194), 理前 (6968), filename (6041), workbooks (4907), 限ル (4884), hiro (3587), 無限 (3392), 他ブ (2699), ダ内 (2288), (hi (2154), saveas (2146), 理後 (2083), 何分 (1984), ファ (1525), ルフ (1440), マク (1401), クロ (1259), ァイ (1181), ォル (1169), 2017 (1163), 木) (1053), ルダ (1001)
『フォルダ内の全エクセルファイルを実行するマクロについて』(hiro)
今、フォルダ内に三十数個のエクセルファイルがあります。 全て同じマクロ名を実行させたいのですができますでしょうか? 今はファイル一つ開いて、マクロからマクロ名を選び実効させてます。 マクロ名は12個あり、その内の一つのマクロ名だけ選んで 全ファイル同じ処理をします。 よろしくお願いします。 < 使用 Excel:Excel2016、使用 OS:Windows7 > ---- http://officevba.info/post-389/ ご参考に (Q::) 2017/12/07(木) 12:41 ---- (Q::) さん、度々有難うございます 試してみます。 (hiro) 2017/12/07(木) 12:50 ---- 他ブックのマクロを動かす命令は、Application.Run ですが、こちらはご存知ですかね? マクロを書いた場所が、標準モジュールなのか、シートモジュールなのかで少し変わりますよ。 あと、次々にブックを開いてブックを開くより、1つのブックにマクロを書いて、このマクロが他ブックを対象に処理する、という形の方が良いと思いますよ。 現行の方法だと、マクロに何か変更を加える場合、全ブックのマクロを書き換えないといけませんから。 (???) 2017/12/07(木) 16:35 ---- (???)さん有難うございます。 Application.Run は知りませんでした。今は、(Q::) さんより参考にという資料で Sub フォルダの中に含まれるファイルのファイルを順に変更する2() &#8194; Dim FolderName1 As String Dim FolderName2 As String Dim FileName As String &#8194; FolderName1 = “C:¥処理前¥” FolderName2 = “C:¥処理後¥” &#8194; If FolderName1 = “False” Then Exit Sub End If &#8194; 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 &#8194; End Sub これを書き換えて、12個のマクロの中に入れようと中身を解読中です。 よろしくお願いします。 (hiro) 2017/12/07(木) 16:46 ---- フォルダのC:¥処理前¥内にエクセルファイルを入れて 下記を実行すれば Sub Macro11() Dim FolderName1 As String Dim FolderName2 As String Dim FileName As String &#8194; FolderName1 = “C:¥処理前¥” FolderName2 = “C:¥処理後¥” &#8194; If FolderName1 = “False” Then Exit Sub End If &#8194; FileName = Dir(FolderName1 & “*xls*”) Do While FileName <> “” Workbooks.Open FileName ------この中にマクロ名の記述を記入-------- Workbooks(Workbooks.Count).SaveAs FolderName2 & FileName Workbooks(Workbooks.Count).Close FileName = Dir() Loop &#8194; End Sub これでマクロ名 Macro11() を実行した時、C:¥処理前¥フォルダ内の全てのエクセルファイルが実効されますでしょうか?何分、Loop関数があるので、間違えると無限ループに入ってPCが反応しなくなるかも知れないので先に問い合わせてみました。 よろしくお願いします。 (hiro) 2017/12/07(木) 17:22 ---- Workbooks.Open FileName この間に文字を入れてたのですが、消えて直線だけになってしまったので再度記入しますと この中に Macro11() の記述を差しこみする予定です。 Workbooks(Workbooks.Count).SaveAs FolderName2 & FileName これでマクロ名 Macro11() を実行した時、C:¥処理前¥フォルダ内の全てのエクセルファイルが実効されますでしょうか?何分、Loop関数があるので、間違えると無限ループに入ってPCが反応しなくなるかも知れないので先に問い合わせてみました。 よろしくお願いします。 (hiro) 2017/12/07(木) 17:27 ---- あれ? フォルダ内のどれか一つのファイルを開いた後で、その中のマクロ名 Macro11() を実行させるので Workbooks.Open FileName というのは多分、どれかファイルを開くという事だと思いますが 開いたファイルのマクロでこのWorkbooks.Open FileName が出てきていいのかな? と疑問に思いました。いいのでしょうか? よろしくお願いします。 (hiro) 2017/12/07(木) 17:35 ---- Dir関数は、ファイル名を返します。 注意しないといけない点は、このときパスは返らない点です。 なので、WorkBooks,Open に指定するファイル名は、FolderName1 & FileName にしないといけませんよ。 あと、このままでも動くでしょうけど、Workbooks(Workbooks.Count)を SaveAs とかはあまり好ましくないです。以下のようにするのが一般的と思います。 Dim wk As Workbook 'この行だけはDoループより前に書く Set wk = Workbooks.Open(FolderName1 & FileName) Application.Run wk.Name & "!" & ActiveSheet.Range("A1") wk.SaveAs FolderName2 & FileName wk.Close False これは、標準モジュールにマクロが書かれているものを他から起動する例です。 マクロは12種類あるそうですが、どこかのセルに「データの入力規則」でマクロ名を列挙しておいて、これを1つ選択してからボタンでも押してマクロ開始するのが良いでしょう。 そして、無限ループさせてExcelをハングアップさせてしまう事を恐れてはいけません。実行前にブックを保存して、強制終了させても良いように備えてから動かせば良いだけです。また、ループ中に DoEvents を1行入れておくと、ESCキーやBREAKキーによる中断ができる可能性が出てきますので、試してみると良いかも。 (???) 2017/12/07(木) 17:36 ---- (???)さん有難うございます。 そう簡単に一筋縄でいかないですねw 今日はそろそろ時間が無くなるので、明日以降にまた挑戦します。 有難うございました。 (hiro) 2017/12/07(木) 17:46 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201712/20171207113758.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97050 documents and 608253 words.

訪問者:カウンタValid HTML 4.01 Transitional