
いつもお世話になっております。
画像1のようなリストを作業場のタブレットPCで使っています。
現状では画像2のユーザーフォームから日付と名前を入力して使っています。
※コードは最下段のMacro3です
ですが、タブレットPCの画面が小さいため、
ボタンを省略することになり画像3のユーザーフォームに名前を選択すると
画像4のユーザーフォームが表示され、日付をB列に入力すると確認者の名前も
隣のC列に自動的に入力されるようにしたいと思っております。
全体としてうまくプログラミングできなかったのですが、
特に以下の2点について全くわかりませんでした。
1)C列に自動的に確認者の名前入力がされる
2)画像4のユーザーフォームの中に最初に入力した確認者の名前を表示する
という感じです。
すいませんが詳しい方、説明の上手な方、直接、コードで説明できる方、
お手数ですが教えて下さい。よろしくお願いします。
追記
1)画像3のユーザーフォームの代わりにメッセージボックスでもいいと思います。
メッセージボックスを使い慣れていないので、ユーザーフォームを使っただけです。
今、気が付いたので一応、追記しておきます。
2)以下のコードは特に必要ないと思います。
私の実力が今のところこの程度なので、こちらのレベルがわかるように貼り付けておきました。
すいませんが抽象的なアドバイスは理解できないです。
---------------------
標準モジュール
Sub Macro3()
UserForm3.Show vbModeless
End Sub
------
画像2のユーザーフォームのコード
Private Sub CommandButton1_Click()
ActiveCell = Format(Date, "mm/dd")
End Sub
Private Sub CommandButton2_Click()
ActiveCell = "田中"
End Sub
Private Sub CommandButton3_Click()
ActiveCell = "山本"
End Sub
Private Sub CommandButton4_Click()
ActiveCell = "鈴木"
End Sub
Private Sub UserForm_Click()
End Sub

No.2ベストアンサー
- 回答日時:
現在使っている画像1、2のユーザインターフェースですが、画面が小さい以外に、特にクレームは無いのですか?もし私が利用者なら、いくつか注文を付けたいところですが・・・。
とりあえず、ご要望通りのコードを書いてみました。処理概要は以下の通りです。
①アクティブセルのある行のC列に名前を設定する
➁上記①で設定した名前をメッセージボックスで表示する
③上記②でOKが押下された場合、同D列に日付を設定する
Private Sub CommandButton2_Click()
With ActiveCell.EntireRow
.Columns("C") = "田中"
If MsgBox(.Columns("C"), vbOKCancel) = vbOK Then
.Columns("D") = Format(Date, "mm/dd")
End If
End With
End Sub
ご解答ありがとうございます。
いい線をいっているのですが、私の説明が下手なので、
私がイメージしていることとママチャリさんのご解答が少しズレています。
今、ご解答して頂いたアドバイスを自分なりに、アレンジしているところです。
ですが、せっかくなので伝わらなかった、本当にしたかったことを説明しておきますね。
---------
「-タブレットPCの画面が小さいため、ボタンを省略することになり-」
ということで、画像2は本物のユーザーインターフェイスはありません。
画像1のリストも「伝票番号」、「日付」、「確認者」しかありませんが、
本当はもっと多くのチェック項目があります。
具体的にいうとユーザーフォーム上に作業者全員の名前のボタンがあるため、
「ユーザーフォームが大きくなり過ぎて、リストが見にくくなった」、ということです。
そのため2回にわけて処理しようという話になりました。
内容は以下の通りです。
A)先に入力する作業者を決定する = 1個目のユーザーフォーム上に作業者全員の名前(ボタン)を表示して選択する
B)名前ボタンを押すとユーザーフォームが消えて、別のユーザーフォームが表示される
※2個目のユーザーフォームの詳細は以下参照
↓
2個目のユーザーフォームで日付を入力する
A)「日付ボタン」を押すとB列の所定のセルに日付が入力される = Macro3で説明した形式で現在の日付が入力される
ActiveCell = Format(Date, "mm/dd") = 必ず上から処理するわけではありません。「B-005」に先に入力することもあります。
B)、A)の処理と同時に(自動的に)C列の所定の場所に確認者の名前が自動的に入力される
先のActiveCell = Format(Date, "mm/dd")で日付を入力したセルの右隣のセル
C)2個目のユーザーフォームの右上に入力する作業者の名前を表示する
※名前は1個目のユーザーフォームで選択した名前
ということです。
仕事で使っているのですが、アップした当日は自宅からだったので、
質問用に適当に簡略化したのものを作成し、アップしたのがまずかったようですね。
ほぼベストアンサーなのですが、その後の報告もしたいので、しばらく開けておきます。
いつも、ご解答ありがとうございます。

No.1
- 回答日時:
C列の一番最後のセルを選択したいのであれば、
Range("C1").End(xlDown).Offset(1,0).Activate
ユーザーフォームのラベルに文字を入力したいのであれば、
dim name as string
ボタンの操作のマクロに
name=田中
別のユーザーフォームに
label1.Caption=name
説明下手ですいません。よかったらやってみてください
解答ありがとうございます。せっかくアドバイスして頂いたのですが、こちらの知識不足でよくわかりませんでした。
やってみたので、一応、書いておきます。
1)>C列の一番最後のセルを選択したいのであれば、
Range("C1").End(xlDown).Offset(1,0).Activate
これは今回使わないと思うのですが、何に使うのでしょうか?
2)>dim name as string
ボタンの操作のマクロに
name=田中
貼り付けてみたのですが、動作しませんでした。
何か方法があると思うのですが、こちらの知識不足でわかりませんでした。
3)>これも同様に貼り付けてみたのですが、動作しませんし、
使い方もわかりませんでした。
せっかくご解答して頂いたのですが、こんな感じです。すいません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Excel(エクセル) 【マクロ】リボン、行列、数式・ステータスバを非表示に 4 2022/12/12 07:32
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) ListBox1をClickしたときのイベント 5 2022/12/11 19:45
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Excel(エクセル) エクセルVBAで次の二つを行いたいのですが思うように動きません。どう修正したらよいのでしょうか? 2 2023/04/22 14:55
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードで、グレーの部分しか入...
-
エクセルVBA 作業後に選択範囲...
-
エクセルで条件をつけて図形を...
-
VBAでのユーザフォームの表示有...
-
VB6でXMLを作成すると変になります
-
別のフォームで記述している関...
-
エクセル マクロ 別シートから...
-
Excel VBA 選択範囲の罫線色の...
-
ツールバーの「ファイル(F)、...
-
メニューバーのイベントが2回...
-
ステップモードの動作確認方法
-
Sub Auto_Open() 実行されない
-
EXCELで選択範囲の中で、上から...
-
ExcelVBAで毎月月初の最初にBoo...
-
エクセルで非表示行を抜かして...
-
プロアクションリプレイmax2の...
-
Excelで、チェックボックスにチ...
-
ascW関数の結果がおかしい
-
C++Builderのエラー...
-
excelのvbaを使って日付を置換...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ワードで、グレーの部分しか入...
-
ユーザーフォームの連続表示に...
-
エクセルで条件をつけて図形を...
-
エクセルVBA 作業後に選択範囲...
-
別のフォームで記述している関...
-
VBAでのユーザフォームの表示有...
-
エクセル マクロ 別シートから...
-
Sub Auto_Open() 実行されない
-
Excel VBA 選択範囲の罫線色の...
-
エクセルで非表示行を抜かして...
-
ascW関数の結果がおかしい
-
ACCESSで別DBにあるクエリを...
-
エクセルでの6ヶ月平均の出し方
-
Excel VBAのステップイン
-
最小化ボタンで最小化したフォ...
-
ExcelVBAで毎月月初の最初にBoo...
-
家電量販店で購入した新品ゲー...
-
円の中に等間隔に線を引くには
-
フルスクリーンモードで開いたP...
-
認証コードの入力の仕方教えて...
おすすめ情報
画像2
画像3
画像4
ママチャリさんいつもありがとうございます。
とりあえず頂いたコードを利用して運用します。
自分自身の勉強もあるので、解決していない部分は引き続き
1個づつ調べたり、質問したりしていこうと思います。
機会があればまたよろしくお願いします。
ありがとうございました。