Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3064 / 13644 ツリー ←次へ | 前へ→

【64515】textboxの表示方法について 八家九僧陀 10/2/17(水) 22:09 質問[未読]
【64516】Re:textboxの表示方法について GT 10/2/17(水) 22:47 発言[未読]
【64520】Re:textboxの表示方法について 八家九僧陀 10/2/18(木) 19:51 質問[未読]
【64521】Re:textboxの表示方法について yoshi 10/2/18(木) 20:32 発言[未読]
【64523】Re:textboxの表示方法について 八家九僧陀 10/2/18(木) 21:10 質問[未読]
【64524】Re:textboxの表示方法について yoshi 10/2/18(木) 23:16 回答[未読]
【64528】Re:textboxの表示方法について Jaka 10/2/19(金) 10:02 発言[未読]

【64515】textboxの表示方法について
質問  八家九僧陀  - 10/2/17(水) 22:09 -

引用なし
パスワード
   textboxに月日(07:00 etc)や年月日(H22.02.03 etc)と入力してワークシートに転記したときは、シートにも書式設定してあるからか、"hh.mm"(07:00 etc)や"gee.mm.dd"(H22.02.03 etc)と表示できるのですが,user_formの検索等でtextboxにデータ表示させたときは、"o.####"等time数値で表示されます。
textboxにユーザー設定した"hh.mm"や"gee.mm.dd"等を表示させたいのですが、どのようにすればよいでしょうか?
 またその記述は、user_form initializeに記述すればいいのでしょうか?
VBA超初心者ですが、なんとかuser_formを作り巧くデータ入力や転記ができるのに、この点だけがうまくいかず、スッキリしません。
 ご教示お願いします。

【64516】Re:textboxの表示方法について
発言  GT  - 10/2/17(水) 22:47 -

引用なし
パスワード
   ▼八家九僧陀 さん:
こんばんは。

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  With Me.TextBox1
    .Value = Format$(Replace(.Text, ":", ""), "00:00")
  End With
End Sub
時間の表示だったらこんなことでしょうか。
年月日も同じようにされると出来ると思います。

【64520】Re:textboxの表示方法について
質問  八家九僧陀  - 10/2/18(木) 19:51 -

引用なし
パスワード
   ▼GT さん:
>▼八家九僧陀 さん:
>こんばんは。
>
>Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
>  With Me.TextBox1
>    .Value = Format$(Replace(.Text, ":", ""), "00:00")
>  End With
>End Sub
>時間の表示だったらこんなことでしょうか。
>年月日も同じようにされると出来ると思います。

返信ありがとうございます。
早速ご教示どおり記述して実行しましたが変化ありません。
textbox1に"12:00"と入力してWSに転記するとちゃんと"12:00"と表記されますが、データをuserformに呼び出しても"0.5"と表示が直りません。
excel97には対応していないのでしょうかね?

【64521】Re:textboxの表示方法について
発言  yoshi  - 10/2/18(木) 20:32 -

引用なし
パスワード
   >textbox1に"12:00"と入力してWSに転記するとちゃんと"12:00"と表記されますが、データをuserformに呼び出しても"0.5"と表示が直りません。

データをuserformに呼び出しても とは?
どんなコードですか?コードがまずいから表示が不都合なのでは...

【64523】Re:textboxの表示方法について
質問  八家九僧陀  - 10/2/18(木) 21:10 -

引用なし
パスワード
   ▼yoshi さん:
>データをuserformに呼び出しても とは?
>どんなコードですか?コードがまずいから表示が不都合なのでは...

Option ExplictやUser_form_initialize()にTextbox1についてなんら定義を設定していません。表示や書き込みのコードは以下の通りです。

Public Sub データ表示(As integer)
TBL(Cnt).value=データ範囲.Cells(行数,Cnt).Value
End Sub

Public Sub データ書き込み(As integer)
データ範囲.Cells(行数,Cnt).Value=TBL(Cnt).value
End Sub

このコードで他のTextBoxのデータ書き込み、表示に問題はありません。
ワークシートのセル書式設定の表示形式のように思うように設定できればよいのですが・・・。スッキリしません。
どうかご教示願います。

【64524】Re:textboxの表示方法について
回答  yoshi  - 10/2/18(木) 23:16 -

引用なし
パスワード
   > TBL(Cnt).value=データ範囲.Cells(行数,Cnt).Value

色々方法はありますが、まず一番簡単なのは
valueプロパティでは無くtextプロパティにするとか...
 TBL(Cnt).value=データ範囲.Cells(行数,Cnt).text

【64528】Re:textboxの表示方法について
発言  Jaka  - 10/2/19(金) 10:02 -

引用なし
パスワード
   ▼八家九僧陀 さん:
>textboxに月日(07:00 etc)や年月日(H22.02.03 etc)と入力してワークシートに転記したときは、シートにも書式設定してあるからか、"hh.mm"(07:00 etc)や"gee.mm.dd"(H22.02.03 etc)と表示できるのですが,user_formの検索等でtextboxにデータ表示させたときは、"o.####"等time数値で表示されます。

秘密の表示形式なので、ヒントを提示すれば後は自分でできるものと思います。
対象セルのシリアル値と表示形式を取得して同じように表示させてやれば良いです。


表示形式 = Range("A1").NumberFormatLocal '= "[$-F400]h:mm:ss AM/PM"
MsgBox Format(Range("A1").Value2, 表示形式)

ひょっとしたら、format関数でできなかったら、
エクセル関数の Application.Text(・・・・)
も試してみる。

3064 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free