30床の高齢者施設で毎朝バイタル(体温・最高血圧・最低血圧・血中酸素濃度)を測定しています。
朝の測定時は1枚の紙に全員のバイタル値を記入(①)しますが、
日中に個人別にひと月分入力できるシートに手打ちで転記(②)しています。
これをひとつのエクセルブックで①を入力したら
30枚の個人別シートにその日のデータが表記されるようにしたいと考えております。
①のシートは15名ずつ2列に分けて
A1~A15 個人名、B1~B15 最高血圧、C1~C15 最低血圧、D1~D15 体温、
E1~E15 血中酸素濃度、
G1~G15 個人名、H1~H15 最高血圧、I1~I15 最低血圧、J1~J15 体温、
K1~K15 血中酸素濃度 を記入しています。
L1には測定した日にちの数字のみを入れています。
②の個人別の30名分のシートは
A1 名前を記入
項目としてA2 日付 B2 最高血圧、 C2 最低血圧、D2 体温、E2 血中酸素濃度、
A3~A34までが日付の数字(1~31)のみです。
日付によって①のデータを個人別の他シートで日別に表記する、
過去の日付のデータも消さないでおくのはどのような数式を入れたら良いか
教えて頂けませんでしょうか?
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
それは大変ですね。
これはマクロを使用したほうが良いでしょう。
ラクしましょう。
以下の前提で設計しました。
・全員分を入力するシート①は、一枚目(一番左)のシート
・各個人データのシートは、2枚目から31枚目
・セルの配置は質問文通り
●準備
1.該当エクセルの上で、Alt+F11
2.別の画面(Visual Basic for Applications)が開くので、そこで、
Alt + I、M
3.真っ白な画面が開きますので、以下のコードを貼り付ける。点線から点線部分。
’-------------------------------------------------------------
Sub データ転記()
'変数宣言
Dim k As Integer, r As Integer, c As Integer
Dim Nam As String, Rng As Range
Dim Ws1 As Worksheet, Hiduke As Integer
Set Ws1 = Worksheets(1)
'日付を決める
Hiduke = InputBox("日付を入力")
'データを各個人シートに転記
Application.ScreenUpdating = False
For c = 1 To 6 Step 5
For r = 1 To 15
Ws1.Select
Nam = Cells(r, c).Value ’個人名を取得
'2枚目以降のシートのA1セルを見て、該当個人シートを探しに行く
k = 2
Do Until Worksheets(k).Cells(1, 1).Value = Nam
k = k + 1
Loop
'転記するデータをコピーし、該当シートの該当日付の行に貼り付ける
With Ws1
Set Rng = .Range(.Cells(r, c + 1), .Cells(r, c + 4))
End With
Rng.Copy
Worksheets(k).Cells(Hiduke + 2, 2).PasteSpecial Paste:=xlPasteAll
Next r
Next c
Application.CutCopyMode = False
Application.ScreenUpdating = True
MsgBox Hiduke & "日の転記完了"
End Sub
’-------------------------------------------------------------
★元には戻せませんので必ずバックアップを取ったうえでお試しください★
●実際の使用時
1.全員分のシートを入力する
2.Alt + F8
3.データ転記を選んで実行
●もっと楽にするには
①シートの上にボタンを設置しましょう。
1.エクセルの上のほうにあるリボンの中から「開発」タブを選択
開発タブが無い場合は以下の手順で。
i. 上のほうにあるリボンの一番左「ファイル」>「オプション」>「リボンのユーザー設定」
ii. 右半分に出てくるメインタブの中の、「開発」に レ点を入れてOK
2.開発タブの中の「挿入」(トンカチとスパナと道具箱の絵が描いたボタン)を押す
3.一番左上の、「ボタン」を押す
4.①シートの、適切な所まで移動する。そこでポインタが + になるはず。
5.配置したいところに行ったら、マウスの左を押しながら、適当な大きさとする
6.マウスの左を離すと、「マクロの登録」が開くので、「データ転記」を登録すれば終わり。
これで①シートから各個人シートへの転記はあっという間に終わるはずです。
私の手元のダミーでは正常作動しました。
なお、
①シートの個人名と、2枚目以降のA1セルにある個人名は同一でなければエラーとなります。
(姓名の間のスペースの有無とかも影響しますので注意)
●その他~メンテナンス
・月替わりの時の処理・・・どういう処理でしょう。全部クリア? 30枚、手作業でやってもいいですけど面倒ではあります。
これもマクロを入れといてもいいかもしれません。なにかあればどうぞ。
・入所者が30名以上になることは無いか・・・これはコードをいじる必要あり。
・入所者が変わる時の対応・・・これは①と個人シートのA1セル変更で対応可
No.2
- 回答日時:
#1です。
すみません。貼り付けるコードはこちらにしてください。測定日付が①シートのL1に入っているのを見落としていました。
’-------------------------------------------------------
Sub データ転記()
'変数宣言
Dim k As Integer, r As Integer, c As Integer
Dim Nam As String, Rng As Range
Dim Ws1 As Worksheet, Hiduke As Integer
Set Ws1 = Worksheets(1)
'日付を決める
Hiduke = Ws1.Cells(1, 12)
'データを各個人シートに転記
Application.ScreenUpdating = False
For c = 1 To 6 Step 5
For r = 1 To 15
Ws1.Select
Nam = Cells(r, c).Value
'該当個人のシートを探しに行く
k = 2
Do Until Worksheets(k).Cells(1, 1).Value = Nam
k = k + 1
Loop
'転記するデータをコピー
With Ws1
Set Rng = .Range(.Cells(r, c + 1), .Cells(r, c + 4))
End With
Rng.Copy
Worksheets(k).Cells(Hiduke + 2, 2).PasteSpecial Paste:=xlPasteAll
Next r
Next c
Application.CutCopyMode = False
Application.ScreenUpdating = True
MsgBox Hiduke & "日の転記完了"
End Sub
’---------------------------------------------------
設置したボタンでは、「ボタン1」などとなっていると思いますが、
その上で右クリックして、ボタン名のあたりで左クリックするとボタン名の変更も可能なので
「転記」とかなんでも好きなようにしてください。
ご不明点あればどうぞ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA セルの値と同じ名前のシー...
-
VBAのoffsetの動き方について教...
-
エクセル マクロを使って日々...
-
エクセルで入力シートから別シ...
-
【エクセルVBA】処理速度を...
-
Excel 複数のシートからグラフ...
-
IF, ISNUMBER, INDIRECTの組み...
-
ExcelVBAで、指定したシートに...
-
Excel日付変更との参照先の連動
-
Excelの中央値の複数条件について
-
エクセルのワークシートが重く...
-
Excelで数値→文字列変換で指数...
-
テキストボックス内の文字のふ...
-
Excelで行ごとコピー、同じ行を...
-
Excelの関数について、特定の文...
-
エクセルにおける、グラフの指...
-
エクセルでグラフタイトルが折...
-
エクセル
-
パワーポイントに貼り付けたエ...
-
C+vのvは英語で何の頭文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの中央値の複数条件について
-
エクセルで入力シートから別シ...
-
VBA セルの値と同じ名前のシー...
-
Excel 複数のシートからグラフ...
-
ExcelVBAで、指定したシートに...
-
エクセルのワークシートが重く...
-
エクセル マクロを使って日々...
-
IF, ISNUMBER, INDIRECTの組み...
-
エクセルVBA:表の内容を担当者...
-
エクセルについて質問です 日付...
-
Excel ハイパーリンク先のセル...
-
質問:特定文字列から空白行ま...
-
【Excel】VLOOKUP関数で複数の...
-
該当するデータを書式設定ごと...
-
Excelの選択肢をポップアップリ...
-
エクセルで入力→日付を自動判別...
-
エクセル自動の年月
-
VBAのoffsetの動き方について教...
-
VBAを利用しオートフィルタで日...
-
エクセル シフト勤務表から、...
おすすめ情報