プロが教える店舗&オフィスのセキュリティ対策術

ファイルの構成
3シートの構成
sheet1:データ用シート A1セルは氏名を入力、2行目は項目行でA2:氏名 B2:点検数 C2:A作業点検日 D2:A作業点検時間 E2:B作業点検日 F2:A作業点検時間です。
sheet2 A.B両方の点検を行う場合の点検案内用シート 
sheet3 Aの点検のみ行う場合の点検案内用シート
sheet2,sheet3はともにsheet1のA1セルを検索値としてVLOOKUP関数で点検日時を引っ張ってきています。sheet1のA1セルに氏名(A3以降)を順番に入力(またはコピペ)し、点検数が2個の人の場合はsheet2の案内分(sheet2のみ)を計算式を消して新規保存し(ファイル名はsheet1のA1セル値)点検数が1個の場合は同様にsheet3を新規人数分全部保存します。保存先フォルダはC:\Users\PCuser\Desktop\点検で氏名数は31ですが今後増える予定です。日程が月ごとにに変わり、そのたびに全員分当該フォルダに格納しているため一度に格納するマクロ記述を教えてください。

「顧客ごとに違う点検案内を作成するマクロ」の質問画像

質問者からの補足コメント

  • tatsumaru77様よりご質問いただきました。
    1.sheet2およびsheet3の画像を添付してみます(計算式が入っているセルに式を表示しました。)
    2.A3の鈴木一郎、A4の田中太郎のファイルシート名まで頭が回りませんでした。どちらもsheet1
    でお願いできますでしょうか。
    3. 9月作成した「点検」フォルダ内の各人のファイルは別フォルダに移して管理します(9月点検分)
     ので点検フォルダは空にします。

    「顧客ごとに違う点検案内を作成するマクロ」の補足画像1
      補足日時:2022/09/16 21:15
  • Sheet3を添付します。

    「顧客ごとに違う点検案内を作成するマクロ」の補足画像2
      補足日時:2022/09/16 21:17

A 回答 (4件)

下記にアップしました。


https://ideone.com/Dwievj

Const Folder = "D:\goo\data8\点検"
は、こちらで試験した書き込み先のフォルダです。
C:\Users\PCuser\Desktop\点検に変えて使用してください。
マクロはNo3の添付図の黄色いセルのみを設定します。
    • good
    • 0
この回答へのお礼

色々とありがとうございました。
大いに参考にさせていただきます。
感謝申し上げます。

お礼日時:2022/09/17 06:15

補足ありがとうございました。


追加の補足要求です。

1.Sheet1の点検数ですが、B列の点検数の件
①1個、2個と書かれてますが、記入されているのは数字のみで"個"は書式設定で表示していますか、
それとも"1個"と入力していますか。
②1個、2個の1,2は半角で、間違いないですか。

③1個、2個以外のケースはないと考えて良いでしょうか。
(例 3個、空白等)
④1個の場合は、A点検のみと考えて良いですか。
(1個でB点検のケースはない)


2.Sheet1のシート名は"データ"ですか、それとも"Sheet1"ですか。どちらでしょうか。

3.Sheet2,Sheet3に関数式が埋め込まれていますが、
マクロを使用すると、この関数式が破壊されてしまいます。
(直接、添付図の黄色のセル部分に値を設定します。
マクロが設定するのは黄色のセルの部分のみです。罫線とか見出しとかは予め設定しておいてください)
もし、関数式が破壊されるのがまずければ、
Sheet4,Sheet5をSheet2,Sheet3の代わりに用意し、そちらに値を設定します。
Sheet4,Sheet5を使うか、Sheet2,Sheet3を使うかを決めていただけませんでしょうか。
Sheet2,Sheet3を使うと関数式はなくなります。
「顧客ごとに違う点検案内を作成するマクロ」の回答画像3
    • good
    • 0
この回答へのお礼

補足要求にご回答申し上げます。
1.Sheet1の点検数 記入されているのは数字のみで"個"は書式設定で表示  します。
②1個、2個の1,2は半角です。
③1個、2個以外のケースはありません。
④1個の場合は、A点検のみと考えて結構です(1個でB点検のケースはない)。
2.Sheet1のシート名は"データ"です。
3.最終はSheet2,Sheet3を値のみにして新規保存したいので計算式がないのがありがたいです。「Sheet2,Sheet3を使う」でお願いします。

お礼日時:2022/09/16 23:04

補足要求です。


1.Sheet2,Sheet3のサンプルも提示していただけませんでしょうか。
(レイアウトが全く同じならSheet2のみで結構です)

2.A3の人(鈴木一郎?)のファイルのシート名は、Sheet2でしょうか。
(点検数が2個のため)
そして、A4の人(田中太郎?)のファイルのシート名は、Sheet3でしょうか。
各ファイルに出力時は、同じシート名にしているような気がしたので念のための確認です。

3.今月マクロを実行し(9月分)、来月になると、10月分のマクロを実行しますが、その時、各個人のファイルが存在します。このファイルに上書きするという理解で良いでしょうか。(実際には、書き込み対象のファイルがあれば削除し、その後新規作成ということになります)
    • good
    • 0
この回答へのお礼

どうもありがとうございます。やり方が慣れておらず元の質問の方に補足要求のご回答を書かせていただきました。よろしくお願い申し上げます。

お礼日時:2022/09/16 21:29

こんにちは



図がよく見えないのではっきりとはしませんけれど、8割方は「マクロの記録」でも作成できると思います。

リストの範囲で以下をループすれば可能でしょう。
 ・セル値をA1セルに転記
 ・B列に日数がありそうなので、その値でコピーするシートを分岐
  (数値なのか文字列なのか不明ですが、質問者様にはわかっているはず)
 ・対象シート.Copy
  で新規ブックにそのシートだけコピーできます
 ・セル範囲.Value = セル範囲.Value
  とすることで、固定値化できます。
 ・お好みの保存先に「名前を付けて保存」

リスト範囲を取得するのと、保存ファイル名を作成する部分だけは、記録ではできませんけれど・・
範囲の取得は、A列なら定石の
 Cells(Rows.Count, 1).End(xlUp)
で、できるでしょう。
ファイル名は質問文に記載がないので、こちらではわかりかねますが、顧客名から作成するのかな?・・
    • good
    • 1
この回答へのお礼

どうもありがとうございます。参考にさせていただき挑戦してみます。
ファイル名は顧客名です。

お礼日時:2022/09/16 21:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!