いつもお世話になっております。
画像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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードで、グレーの部分しか入...
-
エクセルVBA 作業後に選択範囲...
-
エクセルで条件をつけて図形を...
-
別のフォームで記述している関...
-
最小化ボタンで最小化したフォ...
-
エクセル マクロ 別シートから...
-
エクセルで非表示行を抜かして...
-
Excel vba 条件分岐 空白セルが...
-
VBA ピポットテーブル 前年比の...
-
Excel VBAのステップイン
-
VLOOKUPの循環参照について
-
エクセルでの6ヶ月平均の出し方
-
ExcelVBA ドロップボックスで月...
-
ツールバーの「ファイル(F)、...
-
VBAでのユーザフォームの表示有...
-
PHPで最も近い緯度経度をDBデー...
-
ascW関数の結果がおかしい
-
簡単な地図の作り方
-
Sub Auto_Open() 実行されない
-
生コンの立米数の出し方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ワードで、グレーの部分しか入...
-
WEB上で入力できるシフト表
-
“フォーム”とは何でしょうか。
-
ユーザーフォームの連続表示に...
-
キングソフトのSpreadSheets201...
-
outlook2007の連絡先の入力フォ...
-
エクセルで条件をつけて図形を...
-
エクセルVBA 作業後に選択範囲...
-
エクセル マクロ 別シートから...
-
別のフォームで記述している関...
-
エクセルでの6ヶ月平均の出し方
-
Sub Auto_Open() 実行されない
-
ACCESSで別DBにあるクエリを...
-
JREにモバイルSuica追加しょう...
-
メフィスト賞の応募歴は無しだ...
-
認証コードの入力の仕方教えて...
-
家電量販店で購入した新品ゲー...
-
最小化ボタンで最小化したフォ...
-
円の中に等間隔に線を引くには
-
Excel VBAのステップイン
おすすめ情報
画像2
画像3
画像4
ママチャリさんいつもありがとうございます。
とりあえず頂いたコードを利用して運用します。
自分自身の勉強もあるので、解決していない部分は引き続き
1個づつ調べたり、質問したりしていこうと思います。
機会があればまたよろしくお願いします。
ありがとうございました。