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も見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
遅刻の「言い訳」選手権
よく遅刻してしまうんです…… 「電車が遅延してしまい遅れました」 「歯医者さんが長引いて、、、」 「病院が混んでいて」 などなどみなさんがこれまで使ってきた遅刻の言い訳がたくさんあるのではないでしょうか?
-
プリン+醤油=ウニみたいな組み合わせメニューを教えて!
プリンと醤油を一緒に食べると「ウニ」の味がする! というような意外な組み合わせから、新しい味になる食べ物って色々ありますよね。 あなたがこれまでに試した「組み合わせメニュー」を教えてください。
-
うちのカレーにはこれが入ってる!って食材ありますか?
カレーって同じルーから作っても、家庭によって入っているものや味が微妙に違っていて面白いですよね! 「我が家のカレーにはこれが入ってるよ!」 という食材や調味料はありますか?
-
マクロについて教えてください。 ファイル名を変更すると、デバックエラー
Word(ワード)
-
ファイル名変更後も、マクロを動作させたいのですが?
Access(アクセス)
-
エクセルマクロで不特定なファイル名を使用するには
Excel(エクセル)
-
-
4
エクセル マクロ名にブック名が付いた場合の修正方法
Excel(エクセル)
-
5
名前の変わるブックをアクティブにしたい。
Excel(エクセル)
-
6
エクセルマクロ 異なるファイル名でも実行してくれるマクロ
Excel(エクセル)
-
7
エクセルマクロ ファイル名を変更したとき
Excel(エクセル)
-
8
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
9
「マクロの記録」で作成したマクロがファイル名を変更するとエラーが起こる。
XML
-
10
【Excel VBA】ファイル名が一定でないファイルの指定方法
Excel(エクセル)
-
11
Application.Runエラー(1004)
Excel(エクセル)
-
12
エクセル マクロでマクロ名が変わってしまってエラーになります
Excel(エクセル)
-
13
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
14
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
15
エクセルVBA:毎月名前が変わるエクセルファイルを毎月異なるフォルダから開く
その他(コンピューター・テクノロジー)
-
16
EXCELで2つの数値のうち大きい方を採択する数式
Excel(エクセル)
-
17
vba初心者です。 質問です。 毎回ファイル名が変わるファイルを開きたいです。 open filen
その他(IT・Webサービス)
-
18
【Excel】 VBAを使って毎回名前が変わるファイルを添付してメール送信したい。
Excel(エクセル)
-
19
EXCELで2列を参照し、重複するものを横に並べたい
Excel(エクセル)
-
20
エクセル関数>参照ファイル名をセルから呼び出す
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コピーしたファイルのマクロを...
-
excelファイルに使われているVB...
-
別のパソコンでエクセルのマク...
-
マクロを設定したのに、拡張子...
-
エクセル終了時の保存確認メッ...
-
VBA マクロ実行時エラー’1004Ra...
-
VBAを一度起動するとずっと出て...
-
昨日まで動いていたエクセルの...
-
EXCEL マクロ クリップボードク...
-
エクセルマクロが海外PCで開けない
-
Excelが勝手にシート移動してし...
-
マクロを消すマクロは不可能?
-
アクセスでファイルを開いたと...
-
【マクロ】エラーが発生⇒実行時...
-
excelでpersonal.xlsを常に開く...
-
エクセルファイルを自身のファ...
-
エクセルマクロ実行中に別ファ...
-
Excelマクロ ファイル名が変わ...
-
Microsoft Excelのファイルのエ...
-
excelのマクロ実行でブロックさ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAを一度起動するとずっと出て...
-
コピーしたファイルのマクロを...
-
エクセル終了時の保存確認メッ...
-
excelファイルに使われているVB...
-
昨日まで動いていたエクセルの...
-
VBA マクロ実行時エラー’1004Ra...
-
EXCEL マクロ クリップボードク...
-
マクロを消すマクロは不可能?
-
別のパソコンでエクセルのマク...
-
Excelが勝手にシート移動してし...
-
アクセスでファイルを開いたと...
-
エクセルファイルを自身のファ...
-
外部データを取り込むマクロ
-
Excelマクロ ファイル名が変わ...
-
エクセルマクロ実行中に別ファ...
-
エクセル2013vbaで、見えない名...
-
【マクロ】エラーが発生⇒実行時...
-
サクラエディタのマクロ設定を...
-
EXCELマクロコードを、それを含...
-
エクセルマクロを有効にしない...
おすすめ情報
マクロにパスワードがかかっているとか関係しますか。