
No.8ベストアンサー
- 回答日時:
Sub aaa()
Const path As String = "C:\testes\" '各事務所のファイルを置くフォルダのパス
pasu = Dir(path & "*.xls") '上で指定したフォルダ内に入っているxls(xlsm、xlsx全て含む)ファイルを
Do While pasu <> "" '探して
cnt = cnt + 1
Cells(cnt, 1) = path & pasu 'A1から純につっこむ
pasu = Dir() 'ファイルが無くなるまで繰り返す
Loop
For Each Rng In Range("A1", Cells(Rows.Count, 1).End(xlUp)) '行がいくつあるかわからないのでA1から下にかけて何かしら値が入っているセルまで範囲指定
Application.Run ("'" & Rng & "'!Sheet1.m1") 'Sheet1.m1=実行したいマクロ名
On Error Resume Next 'エラーを弾く
Next
End Sub
各行の意味は適当すぎる説明ですがこんな感じです。
内容としては、
各事業所のマクロを実行するだけのAというエクセルファイル(以下A)を作成し上記のマクロを組んでおき、
各事業所に配るエクセルファイルabcd…(以下abcd)の中にあるマクロを呼び出すのですが、
abcdは毎回ファイル名が変わるとのことなので、そのファイル名をまず取得してA列上に入れます(ただしabcdを置くフォルダはバラバラではそもそも探せないので、場所を決めなくてはいけません、上記のマクロではC:\testes\配下にあることになっています)
その後に、取得したファイル名からマクロを実行します。原本があるとのことなのでマクロ名は同じだろうということでそのまま構文に入れています(上記ではマクロ名Sheet1.m1)。
これで元の質問の答えになるはずです!
が、ただちょっと気になるのは、マクロってブックを指定しない限りアクティブブックに対して有効になるので、既に組まれているマクロがAに対して実行されないように組まれているかな?ということですが…でもまあ元々フォルダ名さえ指定できれば上手く動いていたマクロなので大丈夫なんだろうと思っています…!
ちなみに補足読んでですが、abcdのファイルは毎日みんな出勤するたびに開くんですよね?
自動実行にしたらまずそうですかね?なんなら変なところいじられたくないとかならユーザーフォームとかでブック自体は見えなくしてユーザーフォームだけ見せてクリックだけさせるとかもできるんですが(クリックしたら打刻~マクロ実行し保存して閉じてエクセルアプリケーションをプロセス終了するまでを一連のマクロで組むとか)
そしたら毎週日曜に更新しなくてもいいはずなんですけどね!環境が見えないので提案が難しいですね…
回答ありがとうございます。う〜ん、私の知識のなさが問題です。書いていただいたマクロあと一歩のところでつまずいてしまいました。
「Application.Run ("'" & Rng & "'!Sheet1.m1") 'Sheet1.m1=実行したいマクロ名」の部分に何を入れていいのかがわかりません。A列上にファイル名を取得することはできています。このマクロを実行するために作ったファイル名も取得されています。
No.11
- 回答日時:
エラーが出ていないならSheetモジュールの件も忘れて大丈夫ですよ。
エラーになっていないなら原因が他にあるとしか考えられないので、パスワード外して実行してみてください。
パスワード外しても変わらないです。Uh-huhさんのおかげでほとんど完成に近いところまで作成することができました。本当にありがとうございます。今後もエクセルマクロについていろいろ教えていただきたいです。会社にあなたの様な方がいれば業務の効率化がもっと進むと思いますが、現状は尋ねると余計な仕事を増やすなと言わんばかりです。またこのような機会がありましたら是非教えてください。
No.10
- 回答日時:
多分エラーが出ていますね…
一度on error resume next を省いて見てもらえますか?即エラーが出ますかね?
一応作成後試用したので(単純なmsgBox出すだけのマクロを2つとマクロなしファイル1つの合計3ファイル保存したフォルダを対象に)、使えたんですが…。
それと、質問者さんが実行したいマクロをSheetモジュールに入れることはできますか?
ちなみにパスがかかっていることが原因かは不明です、私はパスをかけずに試したので。一回外して上手くいくなら原因ですね。
on error resume next を省いてもエラーは出ません。普通に実行されたような感じになります。対象のファイルが開いた状態で終了になりますが、マクロが書き換えられた形跡はありません。
Sheetモジュールとは何でしょうか。
No.9
- 回答日時:
Application.Run ("'" & Rng & "'!Sheet1.m1") 'Sheet1.m1=実行したいマクロ名
の'Sheet1.m1=実行したいマクロ名はただのコメントですからね!?一応コピペしたら緑色の文字になるので気づくとは思いますが…
Application.Run ("'" & Rng & "'!Sheet1.m1")
これはあくまで例なので、Sheet1.m1がマクロ名になっていますが、
もし標準時というマクロ名なら、
Application.Run ("'" & Rng & "'!標準時")
になります
エラーが出なくなり一瞬喜んだのですが、指定したファイルがすべて開いた状態で終わり、その他の変化がありません。このマクロは各ファイルの「Application.Run "専任タイムカード集計ファイル.xlsm!標準時"」の部分を各ファイルのファイル名に変換してくれるマクロなんですよね。新しいファイル名は上記の専任の前に事務所所在地、例えば「大阪専任タイムカード集計ファイル」のように変わっているだけです。
No.7
- 回答日時:
ある程度どうしたらいいか想像できたので具体的な構文後ほどきちんと回答いたします
イメージとしてはNo3の回答に近くなるかと思います。
ちなみに職員にお願いするとどうせ漏れるからNGなのか、不正に関わるからNGなのかどちらでしょう?
また、どのくらいの頻度で実行しますか?
ありがとうございます。どのように返事すればうまく伝わるか難しいですが、タイムカードとしてExcelファイルを使うので職員は出勤する度にこのファイルを使います(打刻します)。毎月5日〆ですので、〆が来る度に次の月の原本を作成し職員に回す予定です。作成とは言っても月日曜日を更新するだけですので簡単です。
No.5
- 回答日時:
>ファイル名の変更と同時にマクロの行のファイル名も変更になると1番良いです。
分かりました!詳細ありがとうございます!
原本ファイルがあるとのことなので、その原本ファイルにマクロ構文が入っているということで間違いないですか?
その原本をコピーして、毎回ファイル名は変わるということですかね?
ちなみに現在開いているブックのマクロを呼び出す際ファイル名取得は必須じゃないので、もし仮に原本ファイルにマクロ構文が入っているならわざわざ他ブックから呼び出すやり方でマクロ実行しなくても良くて、ファイル名取得する必要もないのですが、なにかやむを得ない理由があると思って良いでしょうか?
一応私ならこうするというやり方ですが、原本ファイルにランダムで変わるファイル名を取得するために任意のセル、例えばA1にCELL関数を入れ自ブックのファイル名含むフルパスを取得できるようにします。そしていじられないように適当に非表示にしておきます。
その上でApplication.run を実行する際構文ではファイル名を指定せずに A1セル値を引っ張るように書きます。そうすることで毎回変わるファイル名はA1に反映するので変わっても大丈夫です。
本当にありがとうございます。
原本ファイルにマクロが入っています。
その原本をコピーして事務所ごとにファイル名を変えようと思っています。
原本ファイルが開いていたら、ファイル名を変えたファイルのマクロも使えるんですよね。これを知らなくて自分のPCで作成したファイルを名前を変更して別のPCで開いた時にマクロ実行するとエラーが出て驚きました。でもこれは名前を変えたファイルを使う時に常に原本ファイルを開いておかなければいけないということですよね。そうだとしたらそれをタイムカードに打刻をする度に職員にお願いするのは良くないと・・・。こんな説明で理解していただけているのでしょうか。
ランダムで変わるファイル名を取得するというのは何となく理解出来ますがこのマクロを書くとなると私にはハードルが高いです。
No.3
- 回答日時:
補足ですが、
もし仮に、全然関係ないファイル名に誰かに変えられる場合(そんなことあるか不明ですが)で、ただほかブックのマクロが必要で実行したいだけであれば、
その実行したいマクロのあるブックすべて特定フォルダに移し、
Application.runで各ブックのマクロを実行する側のブックではその特定フォルダのファイル名を全取得するようにし、取得したファイル名全てに実行予定のマクロ呼び出し、エラーは全てOn Error Resume Nextで弾くということもできます。
例えばtest2.xlsmに実際はマクロaがあるがtest1,2,3いずれに入っているか不明な場合、なので取り敢えず全部に実行命令する感じです。
荒っぽいですが。
本当に早くて丁寧な返信ありがとうございます。何となくイメージ出来るのですが初心者の私には複雑になりすぎている気がします。小さい会社なのですがシステム担当の方に相談しても良い反応をしてもらえず困っていましたがUh-huhさんのお陰でほぼ完成に近づいて来ています。直接依頼したいぐらいです。本当にありがとうございます。
No.2
- 回答日時:
No1の者です。
どういう作業内容かが読め無いので回答に困っています。
作業内容によってもやり方が変わりますし条件によっても何ができて何ができるのか、提案ができるのですが、今提案のしようが無いので、作業内容の詳細を記載されたほうがいいですね。
なんのためにファイル名を変えているか、ファイル名はパターン化されているのか(〇〇年〇月.xlsmというふうに)、それとも勝手に誰かに全然関係ないファイル名に変えるのか、一体なんの為のApplication.Runなのか、同時に複数ファイルを開いているだけなのか、別の作業なのか…全然分からないので勝手に必要ないと決めつけずにある程度質問するときは詳細を伝えてください。
お返事ありがとうございます。初心者でマクロの何を伝えて良いのか分かっておらず申し訳ありません。
Excelで勤怠管理を行おうと考えています。打刻をして保護をかけてある程度不正などは起こらないように作成し、完成に近づいて来ました。
事務所ごとに1ファイル作成し、原本のタイムカードにあたるシートをコピーして職員の方には使っていただこうと考えています。
ですので、事務所ごとにファイルを作成する時に当然ファイルの名前が変わってしまい、マクロの行にファイル名が入っているとその度にエラーがでるので訂正する作業が出て来る事に気づきました。この作業を出来るだけ簡単に行えれば良いと考えています。
ファイル名は規則性は出てくると思います。ファイル名の変更と同時にマクロの行のファイル名も変更になると1番良いです。
こんな説明で足りているでしょうか。よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/10 09:06
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
このQ&Aを見た人はこんなQ&Aも見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
みんなの【マイ・ベスト積読2024】を教えてください。
積読、ついついしちゃいませんか?そこでみなさんの 「2024年に買ったベスト積読」を聞きたいです。
-
人生でいちばんスベッた瞬間
誰しも、笑いをとろうとして失敗した経験があると思います。
-
一番好きなみそ汁の具材は?
みんなで大好きなみそ汁の具材について語り合おうよっ!
-
マクロについて教えてください。 ファイル名を変更すると、デバックエラー
Word(ワード)
-
ファイル名変更後も、マクロを動作させたいのですが?
Access(アクセス)
-
エクセルマクロで不特定なファイル名を使用するには
Excel(エクセル)
-
-
4
エクセル マクロ名にブック名が付いた場合の修正方法
Excel(エクセル)
-
5
【Excel VBA】ファイル名が一定でないファイルの指定方法
Excel(エクセル)
-
6
名前の変わるブックをアクティブにしたい。
Excel(エクセル)
-
7
エクセルマクロ 異なるファイル名でも実行してくれるマクロ
Excel(エクセル)
-
8
エクセルVBA:毎月名前が変わるエクセルファイルを毎月異なるフォルダから開く
その他(コンピューター・テクノロジー)
-
9
「マクロの記録」で作成したマクロがファイル名を変更するとエラーが起こる。
XML
-
10
エクセルマクロ ファイル名を変更したとき
Excel(エクセル)
-
11
Application.Runエラー(1004)
Excel(エクセル)
-
12
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
13
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
14
【マクロ】毎回、ファイル名が変わるファイルへの 文字列の転記
Excel(エクセル)
-
15
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
16
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
17
ファイルの保存場所を変えたらマクロが使えない
Access(アクセス)
-
18
エクセルVBA 「Application.Run」について
Excel(エクセル)
-
19
エクセル マクロでマクロ名が変わってしまってエラーになります
Excel(エクセル)
-
20
ファイル名を指定しないVBAは?
その他(パソコン・スマホ・電化製品)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
昨日まで動いていたエクセルの...
-
VBAを一度起動するとずっと出て...
-
マクロを消すマクロは不可能?
-
Excelマクロ ファイル名が変わ...
-
Excelが勝手にシート移動してし...
-
VBA マクロ実行時エラー’1004Ra...
-
excelファイルに使われているVB...
-
コピーしたファイルのマクロを...
-
マクロを設定したのに、拡張子...
-
Excel>マクロを使っていないは...
-
excelが別プロセスで起動してし...
-
別のパソコンでエクセルのマク...
-
EXCEL マクロ クリップボードク...
-
マクロで自動保存を無効にしたい
-
【マクロ】エラーが発生⇒実行時...
-
エクセル開く時重たい
-
アクセスからエクセルファイル...
-
エクセルマクロ実行中に別ファ...
-
Excelからnotesメールを自動で...
-
アクセスでファイルを開いたと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
昨日まで動いていたエクセルの...
-
VBAを一度起動するとずっと出て...
-
エクセル終了時の保存確認メッ...
-
コピーしたファイルのマクロを...
-
別のパソコンでエクセルのマク...
-
excelファイルに使われているVB...
-
VBA マクロ実行時エラー’1004Ra...
-
マクロを消すマクロは不可能?
-
エクセルマクロ実行中に別ファ...
-
EXCEL マクロ クリップボードク...
-
アクセスでファイルを開いたと...
-
【マクロ】エラーが発生⇒実行時...
-
Excelマクロ ファイル名が変わ...
-
Excelが勝手にシート移動してし...
-
エクセル2013vbaで、見えない名...
-
エクセルファイルを自身のファ...
-
Excel2010 PERSONAL.xlsbの挙動...
-
マクロを設定したのに、拡張子...
-
excelでpersonal.xlsを常に開く...
-
excelが別プロセスで起動してし...
おすすめ情報
マクロにパスワードがかかっているとか関係しますか。