- ベストアンサー
料理に関するもので仕込み表を作成したい方法
- 料理に関するもので仕込み表を作成したい方法についてご相談です。エクセルを使用して、日付や時間、席名、会場名、人数、宴会形式を入力するシートを作成し、メニュー名とその付け合せ、必要数を記入する方法を教えてください。
- また、仕込んだ食材がどの宴会のどのメニューに使うものなのかを判別できるタグを印刷して貼り付ける方法についてもアドバイスをお願いします。タグには日付や時間、席名、人数、宴会形式、メニュー名、付け合せ、必要数を反映させ、空白の場合は順に詰めるようにしたいです。
- 料理人が仕込みをするために、エクセルで仕込み表とタグを作成したいです。どなたかアドバイスをいただけますか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>Sheet1で空白になっている場合は順に詰める この↑事と 材料の並びが、途中に結合セルが有る事により かなり複雑な関数を組まないと出来ないと思います それで、VBAでやってみました Sheet2のタグの位置関係がよく判らないのですが、一応次の様にしました タグ1の左上のセルはB1 タグは右に5列、下に7行づつずれる 日付、宴会名、形式、人数は位置が決まっているので、コピーする (例:Sheet2のB1は =Sheet2!F3 とする) したがって、このVBAは、MENU名、材料名、材料数のみを並べてコピーします 以下のVBAを「標準モジュール」で実行します --------------- Sub Mc1() Dim Zai(6) Dim Suu(6) zl = 8 s2wsNo = 1 Sheet1.Select Do Until Cells(zl, "C") = "" ' Sheet1 読み込み rn = Cells(zl, "C") For i = 1 To 6 Zai(i) = "" Suu(i) = "" Next Do If Cells(zl + 1, "C") <> "" Then Zai(1) = Cells(zl + 1, "C") Suu(1) = Cells(zl + 2, "C") Else Exit Do End If If Cells(zl + 1, "D") <> "" Then Zai(2) = Cells(zl + 1, "D") Suu(2) = Cells(zl + 2, "D") Else Exit Do End If If Cells(zl + 1, "E") <> "" Then Zai(3) = Cells(zl + 1, "E") Suu(3) = Cells(zl + 2, "E") Else Exit Do End If If Cells(zl + 1, "G") <> "" Then Zai(4) = Cells(zl + 1, "G") Suu(4) = Cells(zl + 2, "G") Else Exit Do End If If Cells(zl + 1, "I") <> "" Then Zai(5) = Cells(zl + 1, "I") Suu(5) = Cells(zl + 2, "I") Else Exit Do End If Exit Do Loop ' Sheet2 書込み Sheet2.Select dNo = 1 Do Until Zai(dNo) = "" c = ((s2wsNo + 2) Mod 3) l = Int((s2wsNo - 1) / 3) Cells(l * 7 + 4, c * 5 + 2) = rn Cells(l * 7 + 5, c * 5 + 2) = Zai(dNo) Cells(l * 7 + 5, c * 5 + 5) = Suu(dNo) dNo = dNo + 1 s2wsNo = s2wsNo + 1 Loop zl = zl + 4 Sheet1.Select Loop End Sub ---------------------
お礼
ASIMOV様 ご回答有難うございます。 Excelに関してはほとんど初心者なのでVBAはまったくわからないのですが、コピペで何とかなりました。 お陰様で労働時間の短縮につながります。 有難うございました。