質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

2184閲覧

チェックボックスにチェックを入れると閉じている別ブックに指定範囲のセルを転記する方法

kayo.h3685

総合スコア8

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2018/08/28 06:57

こんにちは

VBA初心者です。

今、勤怠管理表を作成中で、共有ファイルに各担当者が入力するブックと、経理ファイルに同じレイアウトに項目追加をした経理用のブックがあります。

【入力用】

【経理用】

共有ファイルに、各担当者のブックがあり、それぞれパスワードが掛かっています。各担当者が入力を終えると、担当部署の課長・部長がそれぞれのブックを開き、確認後チェックボックスにチェックして、1日分は終了としています。

今のところ、経理ではリンクコピーでそれぞれのブックを貼り付けています。

これを、各担当ブックの部長チェック欄にチェックが入ったら、経理ファイルの該当ブックの該当箇所に入力データを転記したいのですが、上手くやりかたがわかりません。

マクロの記録でやってみたのですが、エラー’91’が出てしまい、その対応すらわからなくなってしまいました。

 1.ファイルが別になっている。

 2.経理ファイルは閉じている。

 3.ブックにパスワードがかかっている。

以上の条件で、ご教授いただけると助かります。

どうぞ宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

いろいろとすみませんでした。

VBA初心者なのに、いきなり複数の条件のついたものをつくろうとしたのが、間違いでした。
比較的シンプルに出来るものから実践をし、学んでいきたいと思います。

当面は現状の処理でいこうと思います。

お世話になりました。

投稿2018/08/31 04:23

kayo.h3685

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

= ヒント =
VBA エラー 91 オブジェクト変数または With ブロック変数が設定されていません。 に エラー 91 への対処方法が書かれています。

局所的なプログラムの問題だと思われます。

= 本題 =
・Aさんがxxをすると、Bさんがzzzをして、 というように作業中の人と次に作業する人の間の連絡が必要とされます。
この受け渡しの部分をプログラムで実現するのか、別途メールや電話連絡で実現するのかで、システムの構成が変わります。
このあたりは、どのように考えているのでしょうか?

『各担当ブックの部長チェック欄にチェックが入ったら、経理ファイルの該当ブックの該当箇所に入力データを転記』をプログラムで実現するのは面倒です(経理担当者(経理ファイルを開くことができる)はチェックが入ったかどうかを調べないといけないですが、各担当のファイルを開くことはできないでしょうから)
でも
『部長が、各担当ブックの部長チェック欄にチェックを入れたら、経理ファイルの該当ブックの該当箇所に入力データを転記』は経理ファイルを変更する権限(経理ファイルのパスワード)を部長がもっているならVBAで実現可能だと思います。

とにかく、人がすることと、VBAですることを整理してください。
そして、誰がどのファイルにどのような権限を持つべきかを考えたうえで、プログラムの構成を考えるべきだと思います。

投稿2018/08/28 07:37

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kayo.h3685

2018/08/29 02:09

お早うございます。 返信おそくなりまして申し訳ございません。 ご回答ありがとうございました。 画像を貼付してご説明したかったのですが、上手く貼れませんでした。 昨日、この質問の1時間後に同じ内容で、何とか画像を貼付したものがありますので、お手数ですが、それで見ていただけたらとても有難いです。 とりあえず内容をご説明させていただきます。 【入力用】 ・1ヶ月で1シート ・2行目に1ヶ月の集計(稼働日数・出勤日数・休日出勤・有休休暇・欠勤・遅早外・常勤・残業・深夜)が自動計算されています。 ・5~8行目の4行を使って1日の稼働時間を入力しています。 例)  A B C  D E F  G   H~K   L~Q RS  T U  V  W 日付 曜日 休区分 開始~終了 工事番号 現場名   内容  備考 区分 時間 部長チェック 課長チェック ・入力は C「休区分」      D「開始時間」      F「終了時間」      G「工事番号」      L~Q「内容」      RS「備考」 です。 開始時間と終了時間の入力で、「遅早外」「常勤」「残業」「深夜」は自動計算しています。 現場ごとに作業時間を把握する為に、1日4行としています。 5行目 7/19 木  8:30~16:00 6902 民間小工事          遅早外 6行目      16:00~19:00     社内              常勤 7:30 7行目      19:00~23:00     社外              残業 4:00   □  □ 8行目                                 深夜 1:00 ・入力項目以外には数式が入っているので、ロックをかけています。 ・【入力用】社内共有フォルダ → 社員日報 → 個人名ブック ・【経理用】経理フォルダ   → 社員日報 → 経理用個人名ブック 各個人名ブックにはパスワードをかけています。 【経理用】は【入力用】と同じレイアウトに、時間の修正項目と各時間に残業単価をかけた金額欄を追加しています。 追加項目以外の部分は【入力用】からリンクコピーで貼り付けていて、ロックをかけています。 経理で入力出来るのは、追加項目部分のみとなります。 各担当者が入力を終えると、所属部署の課長・部長がチェックするようになっています。 なので、部長がチェックを入れたと同時に承認ということで、【経理用】に転記したいと思いました。 すみません。 少し分りにくいかもしれませんが、宜しくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問