No.1
- 回答日時:
テキストボックスとセルとを、ControlSource でつなげているということでしょうか。
もし、そうなら、ControlSource を直接つなげては、無理だと思います。
ひとつ、隠しコントロールを置いておいて、そこからを元のテキストボックスに出すようにしないといけません。
例えば、このようになります。
TextBox2 を隠しコントロールとして、Visible =False にしておきます。
TextBox2 ControlSource は、セルのアドレス
'//
Private Sub TextBox2_Change()
If IsNumeric(TextBox2.Value) Then
'取得したデータを、TextBox1に送る。
TextBox1.Text = Format$(TextBox2.Value, "HH:MM")
End If
End Sub
'UserForm 起動時(起動時には、TextBox2のChangeイベントが利かない)
Private Sub UserForm_Initialize()
If IsNumeric(TextBox2.Value) Then
TextBox1.Text = Format$(TextBox2.Value, "HH:MM")
End If
End Sub
No.2
- 回答日時:
テキストボックスのコントロールソースでリンクするのではなく、イベントプロシージャでそのセルに書き込んではどうでしょうか。
例えば、テキストボックスのChangeイベントで書き込む場合は以下のようになります。
Private Sub TextBox1_Change()
On Error GoTo timeError
timestring = TimeValue(TextBox1.Value)
On Error GoTo 0
Worksheets("Sheet1").Range("A1").Value = timestring
timeError:
End Sub
実際にはユーザフォームにOKボタンなどを追加して、そのClickイベントで、テキストボックスに入力された文字列が時間に変換できるかチェックしてから書き込むというようにするほうがいいでしょうね。
No.3
- 回答日時:
#1の回答者です。
申し訳ないのですが、よく理解できていません。
ただ、#1の回答は、
>>テキストボックスとセルとを、ControlSource でつなげているということでしょうか。
>>もし、そうなら、ControlSource を直接つなげては、無理だと思います。
TextBox1 つまり、表示する側のControlSource は、なし(空白)にしないと、時間値で表示しません。
TextBox2 (隠しコントロール Visible=False)側で、シリアル値(数字)を取得して、それを、TextBox1 側に表示させるという仕組みです。
ただし、これは表示だけで、一方通行です。入力が必要な場合は、別のマクロが必要です。TextBox2 は、ControlSource は、繋いだままです。
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode <> 13 Then Exit Sub
TextBox2.Text = TextBox1.Text
End Sub
また、
CommandButton1_Click()
おそらく、ここにControlSource を書き換えるプログラムがあるはずですから、それを書き換える必要もあるかもしれません。
No.4ベストアンサー
- 回答日時:
また、違う内容が出てきてしまっています。
実際に、私の書いた内容は、どこに行ってしまっているのか、本当に、初歩的な問題なのに、一向に解決する目処が立ちません。そちらのご事情はあるかと思いますが、肝心な話は、堂々巡りしています。
>修正する時はセルのダブルクリックでセルの値を読み込み編集用のコマンドボタン2で、セルに書き込む様になっています。
そのような仕様なら、もはやTextBox のControlSource は不要のようです。ControlSource が、問題をややこしくしているようです。Activecell.Text をインポートして、修正したものを、そのまま貼り付ければ良いだけのことです。凝ったやり方がうまくありません。そもそもUserForm 自体が不要か、使いこなせないのではないかとも考えます。
でも、経験的なことですが、掲示板で、情報の付け足しを繰り返すのでは、特に今回のようなケースでは、とても最後の完成までは行き着くことはありえないと思います。私は、根気よくお話を聞いて差し上げるだけの余裕がありません。
残念ですが、これ以上、細かい内容を後出しで言葉で説明されても、どうしようもありません。もう一度、VBAの基本的なことから勉強されて、それで、はじめから作り直したほうが早いかと思います。
VBAマクロは、コードで成り立っていますから、そのような言葉による説明ではラチが開かないのです。こちらの説明の仕組みも理解を示しているようには思えません。
一応、これで、私のほうからはお終いにさせていただきたく思います。申し訳ありません。
私の知識不足また、質問マナーが悪く、わざわざ時間をさいていただき本当に申し訳ありませんでした。これからは、質問内容を理解して、VBAマクロも勉強していかなければと・・・本当にすみません、全然わからなかったので、安易に質問してしまいました。気分を害してしまい、本当に回答をしていただき有り難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 年月表示を取り出すには 5 2023/02/23 22:51
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) エクセルの数式で教えてください。 5 2023/02/10 15:11
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) エクセルについて教えてください。 1 2023/03/03 08:38
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Excel(エクセル) エクセルについて教えてください。 1 2022/12/26 09:01
- Excel(エクセル) Excel VBA セルの書式設定 2 2022/03/30 10:48
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
ユーザーフォーム上に現在日時と時刻を表示させていますがフォームを実行すると時間が更新されません。それ
Visual Basic(VBA)
-
VBユーザーフォームで時間入力
Visual Basic(VBA)
-
フォームテキストボックスの表示設定
Excel(エクセル)
-
-
4
ユーザーフォームに今の時間を表示
Access(アクセス)
-
5
excelVBA コンボボックスに時刻で表示したい
Excel(エクセル)
-
6
ユーザーフォームのテキストボックスで時間計算
Visual Basic(VBA)
-
7
ユーザーフォームのラベルに時間を表示させてずっと時間がちゃんと動くような方法はありますか?コード書い
Visual Basic(VBA)
-
8
エクセルVBAのフォームで日時を入力しやすくしたい
Excel(エクセル)
-
9
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
10
VBAで○○:○○と表示させたいのに小数で0.53125のように表示さ
Access(アクセス)
-
11
ユーザーフォームのラベルに日付を表示させる方法があればお願いします。出来ればコード書いていただけると
Visual Basic(VBA)
-
12
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
13
TextBoxに日付を自動的に入れる
Visual Basic(VBA)
-
14
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
15
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
16
VBAでユーザーフォームにセル値を表示させるには
Visual Basic(VBA)
-
17
エクセルVBA ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
18
別のシートから値を取得するとき
Visual Basic(VBA)
-
19
EXCELのセルへ、デジタル時計を表示できますか?
Excel(エクセル)
-
20
エクセル マクロ 24時間を越える表示
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セルをクリック⇒そのセルに入力...
-
対象セル内(複数)が埋まった...
-
エクセル 足して割る
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
Excelのチェックボックスの使い...
-
エクセル オートフィルタで絞...
-
Excelで住所を2つ(町名迄と番...
-
セルに特定の色が付いていたら...
-
枠に収まらない文字を非表示に...
-
Excel:指定セル以下全てのセル...
-
貼り付けで複数セルに貼り付けたい
-
EXCEL VBA セルに既に入...
-
excelの特定のセルの隣のセル指...
-
エクセルの一つのセルに複数の...
-
Excelで、「特定のセル」に入力...
-
Excelでのコメント表示位置
-
【Excel】 セルの色での判断は...
-
エクセルで縦に1112223...
-
セルの高さ(行高)を求めるには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
貼り付けで複数セルに貼り付けたい
-
対象セル内(複数)が埋まった...
-
Excelで数式内の文字色を一部だ...
-
セルをクリック⇒そのセルに入力...
-
Excelでのコメント表示位置
-
エクセル 足して割る
-
excelのCOUNTIF関数で、『範囲=...
-
EXCEL VBA セルに既に入...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
(Excel)数字記入セルの数値の後...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excel2003 の『コメント』の編...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
複数のセルのいずれかに数字が...
-
枠に収まらない文字を非表示に...
-
excelの特定のセルの隣のセル指...
おすすめ情報
早速の回答有り難うございます
最初から書いていたら良かったのですが、TextBox1は下に500行あるのです。
次に移動する時は CommandButton1_Click()したら最終行を調べてセルの下へ
500行まで下がっていくのです。ControlSourceでセルの値を入力したらそのしたの
セルからまたシリアル値が帰ってくるのですが、、、たびたびすみません
ちなみに Win10 Excel2013です
WindFallerさま
何度も書き込みいただいて有り難うございます。このユーザーフォームはやめた前任者が作りかけていた物を少しのマクロしかわからない私が引き継ぐ事になったので、これを入力するのは女性社員で(Excelの知識がない)わかりやすく入力出来るようにしてほしいと言うことで前任者が作っていた物を私が引き継いだのです。知識が無く説明不足で申し訳ありません。まずフォームを立ち上げ任意のセル(その行ならどこでも)をダブルクリックしてセルのデーターを読み込ませてから入力する様になっています。新規の場合は、何も読み込まれていないフォームから新規入力のコマンドボタン1で、修正する時はセルのダブルクリックでセルの値を読み込み編集用のコマンドボタン2で、セルに書き込む様になっています。その読み込んだ時のセルの値をフォームでHH:MMで表示・修正したいのです。何とかお知恵をお貸し下さいすみません。
貴重なお時間を頂き有り難うございました。あれから、まともの見なかった本や、他の方の内容をネットで調べ、何とか作ることが出来ました。「Activecell.Text をインポートして、修正したものを、そのまま貼り付ければ良いだけのことです」これがヒントになり助かりました色々ご迷惑をおかけして本当にすみませんでした。これから、もっともっと勉強していきたいなぁと思いました。有り難うございました。<m(__)m>