当方、療養中にて薬剤管理が大変。
現在、14種の薬を食前・食後・食間・頓服・疼痛時などに分けて飲用中。
が、過去に処方された薬に変更されることも多々あり、その場その場,自己判断に任せられている薬もあります。
合計70(ここ1年で出された種類)~130種(更に以前も含める)程度の薬の管理がしたいです。
要は、何時にどの薬を飲んだのかを、日々忘れずに記録しておきたいのです。
エクセル&VBで管理できることができるかから、まずは伺いたいです。
できるとしたら、どのように式を組めば良いかも是非お願いします。
理想としては、飲用時刻になったらメッセージを表示させ、飲んだならOKをクリック,本日の日付の一覧に時刻と飲んだ薬剤名を表記、飲まなかったならNOをクリック,薬剤名ともに表記なし。
こんな感じが理想なのですが、まず、時間になったらメッセージを表示させることなどできるのでしょうか?
当方、VBは超初心者ですが、薬剤管理に本当に困っています。
どうか、お力添えをお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
> エクセル&VBで管理できることができるか
VBを使えば大概のことはできます。
薬剤管理くらいなら問題ないはずです。
> 時間になったらメッセージを表示させることなどできるのでしょうか
TimeやNowで現在時刻がわかるので、Sleepで適当な時間待機しながら(Sleepを使わないとCPUパワーを全部持っていかれる)指定した時間になっているか確認したらどうでしょう。
VBAの場合はSleepを使うのに、kernel32を取りこまないといけないみたいですけど(VB、VBスクリプトはそのまま使える)。
http://homepage1.nifty.com/tsware/tips/tips_045. …
例としてVBスクリプトのサンプルを載せておきます。
drag.vbsといったような名前で保存してみてください。
[drag.vbs]
-----------------------------------------------
Set WshShell = WScript.CreateObject("WScript.Shell")
Dim ShowTime(2)
ShowTime(0) = "07:00:00"
ShowTime(1) = "12:00:00"
ShowTime(2) = "19:00:00"
Do
For Each st In ShowTime
If Hour(st) = Hour(Now) and Minute(st) = Minute(Now) Then
WshShell.Run "drag.hta"
WScript.Sleep 60000
End If
Next
WScript.Sleep 15000
Loop
-----------------------------------------------
7時、12時、19時にdrag.htaを実行(もちろんメッセージを表示させることも可)するようになっています。
実行しても画面には何も変化が無いので、2000/XPならタスクマネージャー、9x系なら[Ctrl]+[Alt]+[Del]でWscriptが起動しているか確認してください。
drag.htaのサンプルはこんな感じです。
[drag.hta]
-----------------------------------------------
<script language=VBScript>
<!--
Set fso = CreateObject("Scripting.FileSystemObject")
Set dlcsv = fso.OpenTextFile("draglist.csv", 1, False)
htmltext = "<html><body BGCOLOR=#C0C0C0><form name=draglist>"
While dlcsv.AtEndOfStream = False
temp = dlcsv.ReadLine
htmltext=htmltext & "<INPUT TYPE=checkbox NAME=" & temp & ">" & temp & "<br>"
Wend
htmltext=htmltext & "<br><INPUT TYPE=button NAME=Save Value=更新></body></html>"
Document.Write htmltext
dlcsv.Close
Sub Save_OnClick
Set result = fso.OpenTextFile("drag.csv", 8, True)
htmltext = "<html><body BGCOLOR=#C0C0C0>保存しました <INPUT TYPE=button VALUE=終了 onClick=window.close()><br><br>" & Date & "<br>" & Time & "<br><br>"
result.Write(Date & "," & Time)
dragcount = Document.Forms("draglist").Length - 2
For i=0 To dragcount
If Document.forms("draglist").item(i).checked = true then
htmltext = htmltext + Document.forms("draglist").item(i).Name +"<br>"
result.Write("," & Document.forms("draglist").item(i).Name)
End If
Next
htmltext = htmltext & "</body></html>"
result.Write(vbcrlf)
Document.Write(htmltext)
result.close
End Sub
-->
</script>
-----------------------------------------------
薬剤のリストを表示してチェックした項目を日付・時間と共にdrag.csvに保存するようになっているので、Excelで開けば結果をみることができます。
多分に我流が入っているので、正規の文法を無視している部分が多々あるはずなので、気になるようでしたら直してください。
あとソフトとして「骨」の部分だけになっているので、肉付けはご自分で適当にお願いします。
htaがどういったものかはこちらを見てください。
http://webtakurou.hp.infoseek.co.jp/hta/hta.htm
それからdrag.htaは薬剤リストとしてdraglist.csvを必要とするようになっています。
薬剤の名前を羅列した、ただのテキストファイルです。
[draglist.csv]
-----------------------------------------------
ペニシリン
メチシリン
フルクロキサシリン
アンピシリン
アモキシシリン
カルベニシリン
セファロスポリン
-----------------------------------------------
※あくまでど素人が作ったいいかげんな代物ですので、もし使うのであれば自己責任でお願いします。
No.2
- 回答日時:
エクセルVBA(2000)です。
私も初心者で十分判っていませんが、下記を作って見ました。
UserForm1を使い、Label1,Label2,Label3の3つのコントロールを貼りつけ
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Dim lngStartTime As Long
Dim e As Long
Public s As Long
Private Sub UserForm_Click()
lngStartTime = timeGetTime
e = Int(lngStartTime / 1000)
Label2.Caption = e
Label3.Caption = e - s
End Sub
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
lngStartTime1 = timeGetTime
s = Int(lngStartTime1 / 1000)
Label1.Caption = s
End Sub
実行し、Formをダブルクリックでスタートし、クリックで途中の時間を表示します。
これで「色々変えて遊んで」みて、(1)何時何分になると(A)(B)をさせる(2)何分後になると(A)(B)をさせる(A)Beepで音を鳴らす
(B)メッセージを出すなどのコードを勉強されてはどうでしょう。
どこをどう変えて発展させるべきか、さっぱり進まないようなら、VB(A)で作るのは諦めて、手操作で出来ることで辛抱するか、既製ソフトを探すべきでしょう。
(Private Declare Function timeGetTimeの部分はAPIですが、そのなかで一番短いもののようで、丸呑みしましょう。)
No.1
- 回答日時:
>>エクセル&VBで管理できることができるかから、まずは伺いたいです。
エクセル及びエクセルのVBでは時間監視の方法がないと思います。
従って、時間が来たらメッセージを出す機能を作り込めません。
Visual Basicなら言語になりますのでプログラミングを覚えれば
要件を満たす機能を作り込む事は容易です。しかし、プログラミングを
覚える必要があることやテストをしっかりしないと内容が内容だけに
お勧めできません。
何か使えるものがないか考えて思い付いたのがスケジュール管理ソフトです。
薬の管理は出来ませんが、何を何時に服用するかを登録すれば、数分前に
表示させる事が出来ます。
参考URLは無料で使えるソフトです。
薬の量が大変多いので驚いています。お体を大切にして下さい。
参考URL:http://www.forest.impress.co.jp/library/schedule …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(悩み相談・人生相談) 動物病院の薬について 3 2023/07/26 13:56
- 婦人科の病気・生理 超低容量ピルが効かない? 2 2022/12/11 10:56
- 薬剤師・登録販売者・MR 変更調剤について 1 2022/05/22 11:50
- 睡眠障害・不眠症・過眠症 飴玉を持ち歩いて常時飴をなめてくださいというなんて 7 2023/06/01 14:13
- 頭痛・腰痛・肩こり 頭痛薬(痛み止め)の種類に関してです。 今は沢山の薬の数がありますが、中で女性の為の生理痛の薬があり 4 2022/04/26 14:55
- 婦人科の病気・生理 このままPMS治療を行うのが不安です。 1 2022/08/08 20:06
- 頭痛・腰痛・肩こり 頭痛薬のオーバードーズの治療中なのですが、薬を飲むのを我慢する方法を知りたいです。 最近の報道で見る 1 2023/06/20 15:53
- 睡眠障害・不眠症・過眠症 病院、精神科、自律神経失調症、不眠症 先日、消化器内科にかかった際、胃カメラをしますと言われ、とても 2 2022/04/24 07:41
- その他(悩み相談・人生相談) 不安神経症について、 2 2023/01/05 17:14
- 医療事務・調剤薬局事務 どちらの薬局の方が安いか、判定お願いします 1 2022/09/22 17:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が...
-
【マクロ】並び替えの範囲が、...
-
Vba Array関数について教えてく...
-
Vba 型が一致しません(エラー1...
-
【ExcelVBA】値を変更しながら...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
【ExcelVBA】5万行以上のデー...
-
VBAでセルの書式を変えずに文字...
-
【マクロ】開いているブックの...
-
Vba セルの4辺について罫線が有...
-
vb.net(vs2022)のtextboxのデザ...
-
Excel VBA 選択範囲の罫線色の...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
エクセルの改行について
-
VBAで特定の文字が入った行をコ...
-
WindowsのOutlook を VBA から...
-
Excel 範囲指定スクショについ...
-
【マクロ】シートの変数へ入れ...
-
エクセルのVBAコードと数式につ...
おすすめ情報
