[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数ブックの同一セルに一括入力する方法』(サラサラ)
教えて下さいm(_ _)m
同一フォルダに50ほどファイルがあり、ファイル名はそれぞれ職員の名前となっています。
職員名のファイルとは別に集約ファイルが同じフォルダにあります。
集約ファイル及び職員名ファイルの書式は全て同じものとなっています。
そこで教えていただきたいことは、全員の職員名ファイルのC3セルに「3」と入力したいのです。
一つ一つファイルを開いて、「3」と入力するのは大変なので、マクロを使い一括で入力できないでしょうか?
集約ファイルの中にマクロボタンを作成し、一括で入力したいと考えています。
よろしくお願いいたします。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
>集約ファイルの中にマクロボタンを作成し、一括で入力したいと考えています。
>よろしくお願いいたします。
作成依頼でしょうか?
掲示板の規約上ダメとはなっていませんが、単純に作成依頼を受けて下さる方はあまりいらっしゃらないように思います。
もし、ご自身で途中まで作っていてどこかで詰まってしまっているのであれば、提示するとアドバイスがいただけるとおもいます。
すくなくとも、現段階ですと、わからない箇所がわからないので、私にわかるかわからないのでアドバイス出来ることが無いです。
(もこな2) 2018/03/01(木) 10:46
ありがとうございます。
ネットで調べたマクロを参考に、以下のマクロを作成したのですが、デバッグする箇所がありうまく作動しませんでした。
よろしくお願いします。
Sub 月の一括入力()
Dim Myfile, Filepath As String
Filepath = ThisWorkbook.Path & "\" Myfile = Dir(Filepath) Do While Myfile <> "" Workbooks.Open Filename = Filepath & Myfile ←ここがデバッグします。 Workbooks(Myfile).Activate Worksheets(1).Cells(3, 3).Value = "3" ActiveWorkbook.Save Myfile = Dir() Loop
End Sub
(サラサラ) 2018/03/01(木) 11:24
Workbooks.Open Filename = Filepath & Myfile
↓
Workbooks.Open Filename:= Filepath & Myfile
と修正すればよいとおもいます。
(もこな2) 2018/03/01(木) 12:52
その部分のコードを「:=」として、実行したところ、
「集計ファイルは既に開いています。2重に開くとこれまでの変更は破棄されます。集計ファイルを開きますか?」と表示されました。
それで、「はい」をクリックしたところ、しばらくして「マイクロソフトエクセルは動作を停止しました」と表示され、停止してしまいました。
集計ファイルは開いた状態で、その集計ファイルのシート上にマクロボタンを作成し、そのボタンにマクロを登録して実行しました。
マクロについては、あまりくわしくないため教えていただければありがたいです。
(サラサラ) 2018/03/01(木) 13:28
ご提示のコードだと、自ブックが保存されてるフォルダ内の全ファイルを開いて、書き込んで、閉じる って作業をすることになります。
そして、それは、 自ブックもその対象になっていることを意味しますし、Excelブックじゃないファイルを対象になっていることを意味します。
なので、少なくとも、Filenameが自分自身のことであれば、処理しないようにすべきとおもいます。
さらに、フォルダ内にExcel以外を保存する可能性があるなら、Excelブックっだけ処理するようにすべきとおもいます。
(もこな2) 2018/03/01(木) 13:48
”少なくとも、Filenameが自分自身のことであれば、処理しないようにすべきとおもいます。
”
とありますが、集計ファイルだけを処理しないようにする方法はありますか?
なお、フォルダ内にはエクセル以外を保存する可能性はありません。
(サラサラ) 2018/03/01(木) 14:05
横から失礼します。
>「集計ファイルは既に開いています。2重に開くとこれまでの変更は破棄されます。 >集計ファイルを開きますか?」と表示されました。
開いたファイルをクローズするコードが入っていないので当然そのようなメッセージが 出てきてしまいます。あと Dim Myfile, Filepath As String だとMyfileがバリアント型に なってしまいますよ。 http://officetanaka.net/excel/vba/variable/03.htm の下の方にバリアント型のデメリットが書かれています。
Sub 月の一括入力()
Dim Myfile As String, Filepath As String
Application.ScreenUpdating = False
Filepath = ThisWorkbook.Path & "\" Myfile = Dir(Filepath) Do While Myfile <> "" Workbooks.Open Filename:=Filepath & Myfile Workbooks(Myfile).Activate Worksheets(1).Cells(3, 3).Value = "3" ActiveWorkbook.Close True Myfile = Dir() Loop
Application.ScreenUpdating = True
End Sub (bi) 2018/03/01(木) 14:06
>Filenameが自分自身のことであれば、処理しないよう
いくつかありますが、
単純に
IF Filename = Thisworkbook.Name then goto スキップ
(中略)
スキップ:
loop
とループの直前にラベルつくって そこに飛ばしちゃうってやり方はあるとおもいます。
(もこな2) 2018/03/01(木) 14:13
↑訂正
スキップ:
Myfile = Dir() Loop
Myfileに次のファイル名を与えなきゃいけないからこうですね。失礼いたしました。
(もこな2) 2018/03/01(木) 14:17
もし、集約ファイル以外が.xlsxで有れば(集約ファイルはマクロがあるためxlsmファイルとして) >Myfile = Dir(Filepath) を >Myfile = Dir(Filepath & "*.xlsx") とするとxlsxファイルだけを対象にできないか? (集約ファイル以外もxlsmだったりすべてxlsファイルだったりだと無理だが) (ねむねむ) 2018/03/01(木) 14:46
>Myfile = Dir(Filepath & "*.xlsx") に変えたところ、バッチリ動きました!
ありがとうございましたm(_ _)m
もこな2様 bi様 ありがとうございしたm(_ _)m
(サラサラ) 2018/03/01(木) 15:09
マクロを集計ファイルに記述するとして、【If Not Myfile = ThisWorkbook.Name Then】の部分で、自ブック以外を処理するようにしています。
Sub 月の一括入力改()
'==変数の宣言など
Dim Myfile As String, Filepath As String
'==処理
Filepath = ThisWorkbook.Path & "\" Myfile = Dir(Filepath & "*.xls?")
Application.ScreenUpdating = False '画面更新停止
Do While Myfile <> "" If Not Myfile = ThisWorkbook.Name Then With Workbooks.Open(Filename:=Filepath & Myfile) .Worksheets(1).Cells(3, 3).Value = "3" .Save .Close End With End If Myfile = Dir() Loop
Application.ScreenUpdating = True '画面更新再開 MsgBox "処理完了"
End Sub
(もこな2) 2018/03/01(木) 15:53
もこなさんのコードもバッチリ動きました!!
ありがとうございましたm(_ _)m
(サラサラ) 2018/03/01(木) 16:36
すみませんが、もう一つ教えていただけないでしょうか。
”3”を一括入力する方法を教えていただいたのですが、この3というのは月の数字なので、
4月、5月と月が変わった場合は、マクロコードの
.Worksheets(1).Cells(3, 3).Value = "3" ←のところを“4”、”5”と変えなければなりません。
そこで、集計ファイルの、C3の数字を例えば4と入力したら、その数字を50個ほどある職員名ファイルのC3も4と一括で入力されるようには出来ないでしょうか?
上記のコードを変えれば出来るのかなと思うのですが、コードが分かりません(; ;)
よろしくお願いいたしますm(_ _)m
(サラサラ) 2018/04/04(水) 09:35
ばっちり動きました!
ほんとに助かりました!
ありがとうございましたm(_ _)m
(サラサラ) 2018/04/04(水) 13:40
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.