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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
都道府県穴埋めゲーム
都道府県の名前を1人1つずつ投稿してください。全ての都道府県が出たら締め切ります!
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
VBユーザーフォームで時間入力
Visual Basic(VBA)
-
フォームテキストボックスの表示設定
Excel(エクセル)
-
ユーザーフォーム上に現在日時と時刻を表示させていますがフォームを実行すると時間が更新されません。それ
Visual Basic(VBA)
-
-
4
ユーザーフォームに今の時間を表示
Access(アクセス)
-
5
ユーザーフォームのテキストボックスで時間計算
Visual Basic(VBA)
-
6
ユーザーフォームのラベルに時間を表示させてずっと時間がちゃんと動くような方法はありますか?コード書い
Visual Basic(VBA)
-
7
エクセルVBAのフォームで日時を入力しやすくしたい
Excel(エクセル)
-
8
エクセルVBA ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
9
EXCELのセルへ、デジタル時計を表示できますか?
Excel(エクセル)
-
10
UserForm1.Showでエラーになります。
工学
-
11
ユーザーフォームのテキストボックスに前回入力した値を表示する Excel
Visual Basic(VBA)
-
12
vba 時間の引き算 例えば 15:00から16:15の間の時間は1時間15分ですが、vbaのコード
Visual Basic(VBA)
-
13
VBAで○○:○○と表示させたいのに小数で0.53125のように表示さ
Access(アクセス)
-
14
excelVBA コンボボックスに時刻で表示したい
Excel(エクセル)
-
15
時間をvbaでセルに1:00と入力する場合
Excel(エクセル)
-
16
ユーザーフォームのラベルに日付を表示させる方法があればお願いします。出来ればコード書いていただけると
Visual Basic(VBA)
-
17
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
18
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
19
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
20
vba セルに入力した時間をマクロで受け取るには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
貼り付けで複数セルに貼り付けたい
-
(Excel)数字記入セルの数値の後...
-
Excelで数式内の文字色を一部だ...
-
エクセルの一つのセルに複数の...
-
Excelでのコメント表示位置
-
EXCEL VBA セルに既に入...
-
対象セル内(複数)が埋まった...
-
エクセルでオブジェクトを常に...
-
【Excel】 セルの色での判断は...
-
セルをクリック⇒そのセルに入力...
-
excelの特定のセルの隣のセル指...
-
エクセルの書式設定の表示形式...
-
【エクセル】IF関数 Aまたは...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
エクセル 足して割る
-
Excelで教えてください。 バー...
-
エクセル オートフィルタで絞...
-
エクセルで指定したセルのどれ...
-
セルに特定の色が付いていたら...
-
セルの高さ(行高)を求めるには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
貼り付けで複数セルに貼り付けたい
-
【エクセル】IF関数 Aまたは...
-
Excelで数式内の文字色を一部だ...
-
エクセルで指定したセルのどれ...
-
(Excel)数字記入セルの数値の後...
-
枠に収まらない文字を非表示に...
-
セルをクリック⇒そのセルに入力...
-
Excelでのコメント表示位置
-
対象セル内(複数)が埋まった...
-
【Excel】 セルの色での判断は...
-
エクセル オートフィルタで絞...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
Excel 例A(1+9) のように番地の...
-
エクセルのセルの枠を超えて文...
-
エクセル 足して割る
-
excelの特定のセルの隣のセル指...
-
エクセルの一つのセルに複数の...
-
Excel for Mac使用中ポインタが...
-
エクセルで住所と建物名を分け...
-
EXCEL VBA セルに既に入...
おすすめ情報
早速の回答有り難うございます
最初から書いていたら良かったのですが、TextBox1は下に500行あるのです。
次に移動する時は CommandButton1_Click()したら最終行を調べてセルの下へ
500行まで下がっていくのです。ControlSourceでセルの値を入力したらそのしたの
セルからまたシリアル値が帰ってくるのですが、、、たびたびすみません
ちなみに Win10 Excel2013です
WindFallerさま
何度も書き込みいただいて有り難うございます。このユーザーフォームはやめた前任者が作りかけていた物を少しのマクロしかわからない私が引き継ぐ事になったので、これを入力するのは女性社員で(Excelの知識がない)わかりやすく入力出来るようにしてほしいと言うことで前任者が作っていた物を私が引き継いだのです。知識が無く説明不足で申し訳ありません。まずフォームを立ち上げ任意のセル(その行ならどこでも)をダブルクリックしてセルのデーターを読み込ませてから入力する様になっています。新規の場合は、何も読み込まれていないフォームから新規入力のコマンドボタン1で、修正する時はセルのダブルクリックでセルの値を読み込み編集用のコマンドボタン2で、セルに書き込む様になっています。その読み込んだ時のセルの値をフォームでHH:MMで表示・修正したいのです。何とかお知恵をお貸し下さいすみません。
貴重なお時間を頂き有り難うございました。あれから、まともの見なかった本や、他の方の内容をネットで調べ、何とか作ることが出来ました。「Activecell.Text をインポートして、修正したものを、そのまま貼り付ければ良いだけのことです」これがヒントになり助かりました色々ご迷惑をおかけして本当にすみませんでした。これから、もっともっと勉強していきたいなぁと思いました。有り難うございました。<m(__)m>