Excel VBA 質問スレッド №1551 (未解決)
コンボボックスの使い方
投稿者 : 初心者 投稿日時 : 2023/08/31(Thu) 00:24:56 OS : Windows 11 EXCEL : Office 365
練習で簡単な勤怠管理を作成しようとしております。時刻をコンボボックスで作成しております。
下記のようにコンボボックスを作成いたしまして、コマンドボタン実行後Excelシートに文字列表記ではなく数値で表示させたい場合、どうすればよろしいでしょうか?
=================
練習で簡単な勤怠管理を作成しようとしております。時刻をコンボボックスで作成しております。
下記のようにコンボボックスを作成いたしまして、コマンドボタン実行後Excelシートに文字列表記ではなく数値で表示させたい場合、どうすればよろしいでしょうか?
=================
Private Sub UserForm_Initialize()
Dim j As Long
Dim g As Long
For j = 0 To 23
UserForm1.ComboBox2.AddItem j
UserForm1.ComboBox4.AddItem j
Next j
For g = 0 To 59
UserForm1.ComboBox3.AddItem g
UserForm1.ComboBox5.AddItem g
Next g
End Sub
スポンサーリンク
[返信 1] Re : コンボボックスの使い方
投稿者 : さんこう 投稿日時 : 2023/08/31(Thu) 02:41:56
>Excelシートに文字列表記ではなく数値で表示させたい
何をしたいのかよくわかりませんが、こんな感じでいかがでしょうか。
Range("A1") = Val(UserForm1.ComboBox2.Value) * 100 + Val(UserForm1.ComboBox4.Value)
参考になれば
<vba 文字列 数値 変換 時間>
https://www.google.com/search?q=vba+%E6%96%87%E5%AD%97%E5%88%97+%E6%95%B0%E5%80%A4+%E5%A4%89%E6%8F%9B+%E6%99%82%E9%96%93&sca_esv=561360965
>Excelシートに文字列表記ではなく数値で表示させたい
何をしたいのかよくわかりませんが、こんな感じでいかがでしょうか。
Range("A1") = Val(UserForm1.ComboBox2.Value) * 100 + Val(UserForm1.ComboBox4.Value)
参考になれば
<vba 文字列 数値 変換 時間>
https://www.google.com/search?q=vba+%E6%96%87%E5%AD%97%E5%88%97+%E6%95%B0%E5%80%A4+%E5%A4%89%E6%8F%9B+%E6%99%82%E9%96%93&sca_esv=561360965
[返信 2] Re : コンボボックスの使い方
投稿者 : higeru 投稿日時 : 2023/08/31(Thu) 08:56:18
ComboBox2,3 が始業時刻の時・分、ComboBox4,5 が終業時刻の時・分ということなのだという前提で、たとえば始業時刻を(アクティブシートの)A1 に書き出すなら、
Range("A1") = ComboBox1.Value & ":" & ComboBox2.Value ("UserForm1." は無くてもよい)
とするのが簡単で、 Excel が時刻と解釈して A1 の表示形式を変えてくれるはずです。もしそうならなければ予め A1 の表示形式を設定しておけばよいかと。
ComboBox2,3 が始業時刻の時・分、ComboBox4,5 が終業時刻の時・分ということなのだという前提で、たとえば始業時刻を(アクティブシートの)A1 に書き出すなら、
Range("A1") = ComboBox1.Value & ":" & ComboBox2.Value ("UserForm1." は無くてもよい)
とするのが簡単で、 Excel が時刻と解釈して A1 の表示形式を変えてくれるはずです。もしそうならなければ予め A1 の表示形式を設定しておけばよいかと。
[返信 3] Re : コンボボックスの使い方
投稿者 : てらてら 投稿日時 : 2023/09/12(Tue) 08:30:07
こんにちは。
>コマンドボタン実行後Excelシートに文字列表記ではなく数値で表示させたい場合、どうすればよろしいでしょうか?
大きい数値を扱うわけではないので、CIntが適切かと思います。
こんにちは。
>コマンドボタン実行後Excelシートに文字列表記ではなく数値で表示させたい場合、どうすればよろしいでしょうか?
大きい数値を扱うわけではないので、CIntが適切かと思います。
Private Sub CommandButton1_Click()
'UserForm1のコマンドボタン
Dim r As Long
r = Selection.Row
Cells(r, "A") = CInt(Me.ComboBox2)
Cells(r, "B") = CInt(Me.ComboBox3)
Cells(r, "D") = CInt(Me.ComboBox4)
Cells(r, "E") = CInt(Me.ComboBox5)
Unload Me
End Sub
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2026-04-04 11:20:08 )