
掲題について質問させてください。
会社で社員各自が勤怠情報を記録しているエクセルがあります。
「勤怠10月_山田.XLS」のように名前が付けられています。
そのBookの中に、「マスタ」というSheetがあるのですが、
この内容が不定期で更新されます。(データの追加のみ)
社員は勤務先がバラバラな為、マスタ内容に更新がある度に、
各自に新しい勤怠ファイルをメールで配布しています。その後、
各自、自分が記録していた内容を新しいファイルにコピーするか、
又はマスタSheetを入れ替えるという手順になっています。
この作業が非常に面倒なのでなんとか自動化できないかと
考えた次第です。
例えばEXEファイルなどを配布して、それを起動すると指定した
Bookの指定したSheetの中身が更新される、
というようなことはできないでしょうか?
VB等でできないものでしょうか。
(私自身はAccessのVBAの経験しかありませんが、
VBでできるのであればがんばって勉強したいと思います。
Accessは各自の端末にインストされてないのです。)
どなたかご教授いただけると大変助かります。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
>この作業が非常に面倒なので
コピーするだけですから別に面倒ではないのでは?(^^;;;;
方法が色々あるとは思いますが、簡単なサンプルをアップしておきます。
ExcelVBAです。
送付するブックのThisWorkBookモジュールに以下を置いておくと
そのブックが開かれたときに自動で動き出します。
'---------------------------------------------------
Private Sub Workbook_Open()
Dim Msg
Dim myKintai As Workbook
MsgBox "マスタの更新を始めます" & vbLf & vbLf & _
"このメッセージを閉じるとファイルを開くダイアログが出ますので" & vbLf & vbLf & _
"勤怠ファイルを開いて下さい", vbInformation
SelectKintai:
Msg = Application.Dialogs(xlDialogOpen).Show
If Msg = False Then
MsgBox "キャンセルはダメよ! 勤怠ファイルを開け! " & vbLf, vbCritical
GoTo SelectKintai
End If
Msg = MsgBox("更新するのは、" & ActiveWorkbook.Name & _
" でいいですね? " & vbLf, vbYesNo)
If Msg = vbNo Then
ActiveWorkbook.Close False
GoTo SelectKintai
End If
Set myKintai = ActiveWorkbook
ThisWorkbook.Worksheets("新マスタ").Cells.Copy _
myKintai.Worksheets("マスタ").Range("A1")
Application.DisplayAlerts = False
myKintai.Save
myKintai.Close
Application.DisplayAlerts = True
MsgBox "更新は終了しました ", vbInformation, "終了"
Application.Quit
ThisWorkbook.Close False
End Sub
'---------------------------------------------------------
●これは途中で止めることはできません。
要するにこのプログラムが動きだしたら更新終了まで止められないということです。
更新するかどうかのメッセージを出すこともできますが、
更新しないを選んで、更新したつもりになると拙いですから。
私見ですが、今回のはコピー程度のことですから、現在の手動の方法がベターだと考えます。
自動更新するなら、更新するファイルを間違った場合の対策などは考えられることを全て講じておかないと。
No.1
- 回答日時:
VBで可能でしょう。
(エクセルVBAでできることは基本的にVBでできます。エクセルの「マクロの記録」機能とかで勉強するとやりやすいです。)が、ちょっと疑問に思ったので、参考までに意見です。
・VBで作ったEXEは単体で動かないかも。その場合、初回はインストール作業が必要になり、結局煩雑かもしれませんね。
(VB6までしか知らないのですが、最近のVBではどうなんでしょうか。。。)
・exeファイルを実行して、更新するエクセルファイルを指定して更新を実行するのと、シートをコピーするのでは、対して手間は変わらなさそうでは?
・「マスタ」シートだけ別のエクセルファイルにして、
勤怠エクセルファイルと同じフォルダに置くなどして、参照するようにしてはどうでしょうか?
マスタのエクセルファイルを上書きしてもらうだけで済みそうですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) Excel使用前提 同じフォルダ内にあるファイルの集約等をマクロでできますか 4 2022/09/06 19:03
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- 労働相談 実務経験書発行に関する相談先を探しています。 1 2022/08/14 11:45
- 派遣社員・契約社員 派遣社員で働いてますが、今度の契約を更新(6月中旬)するか否かで悩んでます。 現在転職活動中で、6月 4 2022/05/23 23:22
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vbからのファイル操作について
-
VBA Bookの表示、非表示
-
サクラエディタに使用できるvbs...
-
指定したフォルダ直下のファイ...
-
hsp
-
アンインストール中のファイル...
-
Tera Termでのコマンド流し込み...
-
Thunderbird 振り分けされなく...
-
NetBTエラーとbrowserエラーが多発
-
フォルダのサムネイル画像
-
APNS certificateって何?
-
Xpマシンですが、時々動作が...
-
撮影後、SDカードに作成される...
-
C:\\Documents and Settingsが...
-
共有フォルダの共有権限の移行...
-
vbsファイルによるネットワーク...
-
formのaction属性に設定する値...
-
logrotateの実行時間
-
コマンドプロンプトで、コマン...
-
ACCESS,パラメータクエリをフォ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サブフォルダ内のファイルを全...
-
C#でCSVファイルをリストビュー...
-
フォルダ内検索
-
指定したフォルダ直下のファイ...
-
VBA Bookの表示、非表示
-
error RC2104について
-
勝手にファイルが作成されて行...
-
指定したもの以外の削除方法
-
リストボックスに表示されたフ...
-
たくさんのフォルダーの中から...
-
サクラエディタに使用できるvbs...
-
VSC# ListViewへのドラッグ&ド...
-
EXCELのSheetを自動更新できな...
-
日付を指定しファイルを削除す...
-
パイソンを使ってエクセルで作...
-
隠されたファイル
-
vbaでDLL参照しているエクセル...
-
1フォルダに「A.xls」、「B.xl...
-
音をならしたい・・・
-
使われていないスタイルシート...
おすすめ情報