No.4ベストアンサー
- 回答日時:
>処方内容が入ってゐる他の処方内容のシートから複数のお薬名と用法数量もコンボボックスにいれるのですが・・・
具体的な配置が判らないので何ともお答えのしようがありません。
別シートにはどのような配置で、処方内容・薬名・用法・数量になっているのか?
普通に考えれば処方内容を選択 → VLOOKUP関数なので他の列を選択!
といった操作の方が簡単のような気がします。
※ その道には精通していないので、
あくまでExcelの基本的な使い方を前提としてのアドバイスしかできません。
この程度でごめんなさい。m(_ _)m
No.3
- 回答日時:
続けてお邪魔します。
>過去の入居者の処方内容を呼び出したいときもあるのですが、同じフォームの中で呼び出しボタン(名前入れたら処方内容がでてくる)を作りたいが・・・
というコトは同一人物で複数の「処方内容」がある可能性がある!というのですね。
一案です。
自分であれば、
前回のテキストボックス3を消去し、コンボボックスに変更します。
そして前回のユーザーフォームの配置そのままで、「氏名」を入力すれば
テキストボックスの「年齢」の窓に最終行の「年齢」を、
コンボボックスに今まで出現している「処方内容」をリスト候補として表示するようにします。
(異なる処方内容の場合は直接内容を入力できます)
前回のコードはすべて消去し、前述のようにテキストボックス3をコンボボックスに変更し
↓のコードにしてみてください。
尚、Z列をコンボボックスの作業用の列として使用していますので、
Z列は使用していない状態にしておいてください。
Private Sub CommandButton1_Click() '//この行から//
If TextBox1 = "" Then
MsgBox "氏名が未入力", vbExclamation
TextBox1.SetFocus
Exit Sub
End If
If TextBox2 = "" Then
MsgBox "年齢が未入力", vbExclamation
TextBox2.SetFocus
Exit Sub
End If
If ComboBox1 = "" Then
MsgBox "処方内容が未入力", vbExclamation
ComboBox1.SetFocus
Exit Sub
End If
With Worksheets("登録画面").Cells(Rows.Count, "A").End(xlUp).Offset(1)
.Value = TextBox1
.Offset(, 1) = Val(TextBox2)
.Offset(, 2) = ComboBox1
End With
TextBox1 = ""
TextBox2 = ""
ComboBox1.List = Array()
Range("Z:Z").ClearContents
TextBox1.SetFocus
End Sub
Private Sub TextBox1_Change()
Dim i As Long, lastRow As Long, cnt As Long
Dim c As Range
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Set c = Range("A:A").Find(what:=TextBox1, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
For i = lastRow To 2 Step -1
If Cells(i, "A") = TextBox1 Then
TextBox2 = Cells(i, "B")
Exit For
End If
Next i
Range("Z:Z").ClearContents
For i = 2 To lastRow
If Cells(i, "A") = TextBox1 Then
Set c = Range("Z:Z").Find(what:=Cells(i, "C"), LookIn:=xlValues, lookat:=xlWhole)
If c Is Nothing Then
cnt = cnt + 1
Cells(cnt, "Z") = Cells(i, "C")
End If
End If
Next i
lastRow = Cells(Rows.Count, "Z").End(xlUp).Row
If lastRow > 0 Then
For i = 1 To lastRow
ComboBox1.AddItem Cells(i, "Z")
Next i
ComboBox1 = ""
End If
End If
End Sub '//この行まで//
こんな感じではどうでしょうか?
※ 当然ですが、同姓同名は考慮していません。m(_ _)m
No.2
- 回答日時:
No.1です。
① フォームから患者のデータ(氏名、年齢、処方内容)を入力し、データーシートに上から順次入力データを蓄積していくこと
② 逆にフォームに名前を入れると処方内容が呼び出せるようにしたいわけです
いずれにしても具体的な配置が判らないので、的確なアドバイスができないのですが、
とりあえず①に関してのやり方だけ・・・
まず画像のようなユーザーフォームを作成しておきます。
テキストボックス 1~3 を挿入、そしてコマンドボタンを一つ配置。
ユーザーフォームのコマンドボタンのコードは↓のようにしています。
Private Sub CommandButton1_Click()
If TextBox1 = "" Then
MsgBox "氏名が未入力です", vbExclamation
TextBox1.SetFocus
Exit Sub
End If
If TextBox2 = "" Then
MsgBox "年齢が未入力", vbExclamation
TextBox2.SetFocus
Exit Sub
End If
If TextBox3 = "" Then
MsgBox "処方内容が未入力", vbExclamation
TextBox3.SetFocus
Exit Sub
End If
With Worksheets("登録画面").Cells(Rows.Count, "A").End(xlUp).Offset(1)
.Value = TextBox1
.Offset(, 1) = Val(TextBox2)
.Offset(, 2) = TextBox3
End With
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox1.SetFocus
End Sub
↓の画像では「登録画面」シートのコマンドボタン(Captionは「入力画面へ」としている)を挿入し
そのコードを
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
テキストボックス1~3を入力 → コマンドボタンを押下
これで「登録画面」シートのA~C列に順次表示されていきます。
※ 本来であれば考えられるエラー処理を施す必要がありますが、
まずはこの程度で。
尚、②に関しては同じユーザーフォームを使うのか?それとも別のユーザーフォームを立ち上げるのか?
によってもやり方が変わってきますし、
万一同一人物が複数登録されている場合はその「処方内容」をすべて表示するのか?等々・・・
色々疑問点がありますので、
ここでコードを記載しても無意味になりそうです。m(_ _)m
No.1
- 回答日時:
こんばんは!
>途中までユーザーフォーム作ったのを再び呼び出す
とはユーザーフォームを修正したい!というコトでしょうか?
そうであれば
Alt+F11キーでVBE画面が表示されます。
表示された画面の左側の「VBAProject」画面に「ユーザーフォーム」のアイコンがあるはずなので
それをダブルクリック!
それとも単に作成したユーザーフォームを表示したい!というのであれば
Sheet上にコマンドボタンを挿入し、そのコードを
> UserForm1.Show
とすれば画面上に作成したユーザーフォームが表示されます。
※ こんな単純なコトではないのでしょうかね?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのファームにプルダウン設置できますか? 2 2022/05/19 23:38
- Access(アクセス) Accessに関する質問です。 クエリーQ出勤 からフォームF出勤を作成 フォームは分割フォームで作 1 2023/05/26 08:57
- Excel(エクセル) エクセル会員名簿について。 Yahooメールの連絡先で、AさんCさんにチェックをつけて別のグループに 2 2023/03/27 20:33
- Google Drive googleフォームについて 1 2022/11/10 15:18
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- Excel(エクセル) vba フォーム軽量化 1 2022/09/07 18:59
- Access(アクセス) マイクロソフト アクセス2021のフォームビュー作成でレイアウトを帳票形式から単票形式にあとから変更 1 2023/03/03 10:56
- Access(アクセス) アクセスで、androidのスマホサイズのフォームは作れますか?テキストとチェックボックスだけのフォ 1 2023/05/31 00:53
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
率直な意見を聞きたいです。 私...
-
薬を飲み始めてから口臭がしま...
-
商品は同じ物?百貨店とディス...
-
あー寝るのがトラウマや ほんま...
-
心療内科もしくは精神科の医療...
-
過食症に効く薬
-
精神安定剤って中学生からでも...
-
ずっと眠ってる方法はありませ...
-
義父が脳梗塞で倒れ、寝ると食...
-
内科でデパスはもらえますか?
-
睡眠薬についてです。 寝つきが...
-
エスティローダーの基礎化粧品...
-
眠れない日々が続いて困ってま...
-
モダフィニルを購入方法をご存...
-
すぐ寝れる方法
-
痩せ薬について
-
現在心療内科よりエチゾラム錠(...
-
統合失調症の治し方を教えてく...
-
デパスの離脱症状?
-
アジアアロワナの、目と、尾び...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アルプラゾラムは1回飲んだら、...
-
睡眠薬を通販のつるかめ薬局で...
-
向精神薬マイスリーの重複投与...
-
フルスルチアミンは、何科で処...
-
ソラナックスと頭痛薬併用して...
-
薬の飲み合わせについて教えて...
-
処方薬について 一部の処方薬に...
-
デパスを処方・まとめて欲しい...
-
多汗症なので、プロスパスの服...
-
すぐ寝れる方法
-
内科で 睡眠導入剤 を処方して...
-
ReFaロックオイルって髪の毛痛...
-
複合感冒薬PL顆粒について
-
精神科での下剤処方
-
モダフィニルを購入方法をご存...
-
マイスリーとメイラックス
-
統合失調症の治し方を教えてく...
-
アルプラゾラムとウットの飲み...
-
商品は同じ物?百貨店とディス...
-
過食症に効く薬
おすすめ情報
途中まで作っていたの呼び出すこと できました、ありがとう。したいことは”データーシート”を作成し、そこのとなりに”登録画面シート”で登録入力フォームを作り、そこのフォームから患者のデータ(氏名、年齢、処方内容)を入力し、データーシートに上から順次入力データを蓄積して行くこと、また逆にフォームに名前を入れると処方内容が呼び出せるようにしたいわけです。まずは登録ボタンを作ったのですが、オフセット関数なるものをネットで探してやってみたが反応しないんです。
できました!!!! 有難う。感激です!!!
申し訳ないが小生老人施設の薬剤師ですが、過去の入居者の処方内容を呼び出したいときもあるのですが、同じフォームの中で呼び出しボタン(名前入れたら処方内容がでてくる)を作りたいが ご教授願えませんでしょうか・・。 図々しくて申し訳ありません。
できました、天才的ですね 候補も出てくるようですね、貴方みたいなお方に逢えたことを幸運と思います。有難うございました。それも無料で深く感謝申し上げます。
処方内容は同じエクセルで 処方内容が入ってゐる他の処方内容のシートから複数のお薬名と用法数量もコンボボックスにいれるのですが、その範囲を一気にそのコンボボックスにコピーペーストするとセル一個しか入らないのですが、1行の文字かそれともワードみたいにすべて文字にするしかないんでしょうか。最後のわがままですがいい方法はないものでしょうか。