Sheet1の名前を「利用者情報」とし、4列目に1番目の方の情報としてB4に名前、C4に起床時の薬、D4に朝食前など。2番目の情報を5列目、3人目の情報を6列目、と約200名あります。
Sheet2以降は部屋番号「101」、Sheet3は「102」と作っています。「101」のシートには所定の用紙があり、「利用者情報」の4列目の情報を自動的に反映させたいです。反映させる内容は、名前と薬があれば〇、なければ空白。
わかりにくいですが、よろしくお願いします
No.1
- 回答日時:
質問の内容や条件などがわかりません。
これも関係しているのでしょうか。 https://oshiete.goo.ne.jp/qa/9442911.html
他にも関係しているのがあるのでしょうか。
特に不都合がないのであれば、質問履歴を公開した方が、回答者のためには便利がよいのではないかと思います。 https://oshiete.goo.ne.jp/profile/542264877
なお、「1か月分の表を作成しています」というのは、1ヶ月分を1つのbookにし、101~各部屋のsheetは、そのsheet中で1ヶ月分のサービス提供状況が一覧になるようになっているのでしょうか。そして、7行で1日分の記録になっていて、ある日にちのデータが、ある部屋のsheetの「B44、B45、D45、B46、D46、B47、D47、B48、B49、C49、D49、E49、B50」に、「利用者情報」sheetのA列の部屋番号を参照して、(日にち情報はどこにあるのか)、部屋番号該当行のC列~O列にあるチェックを参照して、○か空白にするのでしょうか。
そうなると、「利用者情報」sheetのデーター(チェック)は、日が翌日になるときクリアするが、各部屋の既存の○はそのままに残すことになるのでしょうか。
そうであれば、単純なセルリンクは使えないように思います。
また月の途中で、利用者が入れ替わったり、部屋を移ることはないのでしょうか。 利用者毎にではなくて、部屋ごとのサービス提供状況が残ればよいのでしょうか。
月が変わるときに、新規に(?)bookを造り直すのでしょうか。出来れば前の月の(A列=部屋番号、B列=利用者氏名)を再利用してBOOKを造り直すのでしょうか。
たぶん、各部屋のsheetの上の方の行とか、他にも様式が設定されているのだとおもいますが、何を再利用し、なにを再利用しないのかがわからないと、回答もしにくいと思います。
No.2
- 回答日時:
こんな感じでしょうか。
添付の図のように、「利用者情報」シートと「101」シートを手作業で作成します。
「101」シートのB1~B3セルは数式で「利用者情報」シートを参照しています。
【B1】=IF(利用者情報!$B$4="","",利用者情報!$B$4)
【B2】=IF(利用者情報!$C$4="","",利用者情報!$C$4)
【B3】=IF(利用者情報!$D$4="","",利用者情報!$D$4)
「102」以降のシートは、マクロで作成しますので、手作業で作る必要はありません(逆に存在しているとエラーになります)。
【マクロの処理概要】
「101」シートをコピーして、「102」シートを作る。
「102」シート内の数式が設定されているセルについて、数式の参照先の行番号(利用者情報!R4)を次の行(利用者情報!R5)にReplaceする(Replaceする際、R1C1形式の方が便利だったので、こんな書き方になっています)。
上記の処理を「利用者情報」シートの最終行分まで繰り返す。
Sub sample()
Dim i As Long
Dim RoomNo As Long
Dim ws As Worksheet
Dim Rng As Range
RoomNo = 102
With Sheets("利用者情報")
For i = 5 To .Cells(Rows.Count, "B").End(xlUp).Row
Sheets("101").Copy After:=Sheets(Sheets.Count)
Set ws = ActiveSheet
ws.Name = RoomNo
RoomNo = RoomNo + 1
For Each Rng In ws.Cells.SpecialCells(xlCellTypeFormulas, 23)
Rng.FormulaR1C1 = Replace(Rng.FormulaR1C1, "利用者情報!R4", "利用者情報!R" & i)
Next Rng
Next i
End With
End Sub
No.3
- 回答日時:
No.2 ママチャリです。
長々と補足コメントご苦労様です。ただ、その辺も加味して、No.2の回答を書いたつもりなのですが、何か不足がありましたでしょうか。
No.2の例では、B1~B3までしか式が入っていませんが、プログラム上は幾つあっても対応できるようになっています。
プログラムコードを熟読して、しかっり理解して、ご自分のシートに適用してみて下さい。
ご検討をお祈りします。
No.4
- 回答日時:
ご提供したマクロは、102だけを作るマクロではありません。
B5、B6、B7・・・と値が入力されていれば、すべて作られるはずなのですが、うまく動かなかったでしょうか?念のため言っておくと、このマクロは102,103,104・・・とシートを作成します。シートができた状態で再実行すると、また102、103・・・とシートを作りに行くのですが、同名のシートは作れないのでエラーになります。再実行する際は、最初に作られたシートを削除しておく必要があります。
ちなみに、103を作る用にマクロを修正したとのことですが、そのコードはどんなのでしょうか?興味があるので、補足にアップして頂けますか。
No.5
- 回答日時:
「ファイルを開く」ウインドウが表示されるということですが、普通じゃないと思います。
もしかして、余計なマクロが入っていたりしませんか?
例えば、Workbook_SheetActivateイベントプロシジャに余計なマクロが書かれているとか…。
No.6ベストアンサー
- 回答日時:
それは関係なさそうですね。
ちなみに、手動で次の操作をしても何か起きそうな気がするのですが、いかがでしょうか?
①単純に新しいシートを作る。
➁101をコピーして新しいシートを作る。
ここから先は、kotasannさんが作ったマクロの問題のようなので、これ以上はお役に立てないかもしれません。あしからず…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Excel(エクセル) エクセルカレンダーに予定表を反映したいです。 6 2022/09/30 14:39
- Excel(エクセル) エクセルの日付抽出 2 2023/02/03 15:02
- Excel(エクセル) Excel関数 情報引用する方法 4 2022/07/31 20:59
- Excel(エクセル) Excelで日報を自動で作成したい 売上管理シートに入力した売上データを、日報に自動反映させたいと考 1 2023/04/29 18:07
- Excel(エクセル) Excel 売上管理シートに入力した売上データを、日報に自動反映させたいと考えています。 売上管理シ 3 2023/04/29 18:08
- Excel(エクセル) エクセルの複数ブックのシートを1つまとめたい 都道府県ごとに47ブックがあり、そのシートのデータを1 5 2022/11/15 14:57
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- 政治 日本も、中国のように顔認証を使って個人情報を特定できれば、犯人はすぐに捕まえられますよね? 5 2023/01/02 21:18
- gooブログ gooブログへのコメント投稿について 1 2023/05/21 03:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの作業計算方法について
-
はがきについて。
-
エクセル 文字を増やしたい。
-
セルの内容表示が邪魔になる
-
Microsoft365に変えたのですが...
-
エクセルの計算
-
Microsoft1Officeの互換ソフト...
-
【マクロ】その時、その時で変...
-
【マクロ】読取専用のファイル...
-
エクセル初心者です 関数の入れ...
-
Excel ピボットテーブルで日付...
-
【関数】適切な文字数の数字を...
-
LOOKUP関数を使えばいいのでし...
-
Aというブックの1というシート...
-
エクセル関数を教えてください
-
Excelのチェックボックスの使い...
-
エクセル 白黒印刷で白線を印刷...
-
時間によってファイル名が変わ...
-
WPS OFFICEでの縦書きについて
-
エクセルの条件付き書式につい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報
B列に利用者の名前、C~Oまでその方の情報をコントロールフォームチェックボックスを作成しています。B4の利用者の情報としてC4のチェックボックスを入れると、P4に0と表示。D4にチェックを入れるとQ4に0と表示。このように、C~Oのチェクボックスを入れるとP~AAに表示されるようにしています。
利用者情報を基に、シート101は「利用者情報のB4」の髙橋さんの情報を反映させたいと考えています。101のU42は利用者情報のA4を参照。101のW42は、利用者情報のB4参照することで、部屋番号と、名前が入力できるようになっています。利用者情報のC4にチェックが入ると、P4は0となり、101のB44は、〇と表示。数式としては=IF(利用者情報!$P$4=0,"○","")としています。利用者情報のD4にチェックが入ると、Q4は0となり、101のB45は、〇と表示。数式としては=IF(利用者情報!$Q$4=0,"○","")。これを繰り返し、101の28(日)の〇や空白は作ることはできました。29日のF44は28日のB44を参照。数式は=$B$44。29日のF45は、28日のF45を参照=$B$45。を繰り返し、29日は完成。その29日をコピペし、1カ月分作成したものが、添付写真です。
3回目の連続補足です。
この101のシートを複製し、102、103、104、105と作りたいのですが、102は伊藤さんの情報、103は長野さんの情報といったように、複製をするたびに自動的に参照位置を変えたい!というのが、最終的な質問となります。
長くなりましたが、よろしくお願いします!
ママチャリさんありがとうございます。
教えていただいた、頂いた内容を利用者情報のコードにコピペして、マクロ実施を行いました。そして、見事に101をコピーし102を作ることができました!
もう少しお聞きしたいのですが、仮にこのコードが「102作成用」として、次の「103」を作るためにはコードはどこの部分を変更したらよいでしょうか?思うに、room No=102をroom No=103でマクロ実施したのですが、できませんでした。
よろしくお願いします
ママチャリさん、”103を作る用にマクロを修正したと”これは自分の勘違いでした。すみません。B5以降に名前が入力されていなかったので、部屋番号のシートが作成できていなかったようです。
B5以降に名前を入れ、マクロ実行すると添付写真のようにファイルを開く画面が出てしまうのですが、これは普通のことなのでしょうか?なんのファイルを開いていいかわからないので、キャンセルを押すと102が作成され、また同じ画面がでるのでキャンセルすると103が作成と、、なります。
よろしくお願いします
4列目の情報として、起床時、朝食前、朝食後、、、、13項目にフォームコントロールチェックボックスを付けています。レ点がなければ-1、レ点ありで0という設定をしています。起床時はC4であるため、0 or-1の表示を13個離れたP4に表示させています。
Sub チェック1_Click()
With ActiveSheet.Shapes(Application.Caller).TopLeftCell.Offset(0, 13)
.Value = Not .Value
End With
End Sub
同様のマクロをSub チェック1_Click()~Sub チェック13_Click()作成しています。
これが何か関係しているのでしょうか?