ラベル VB の投稿を表示しています。 すべての投稿を表示
ラベル VB の投稿を表示しています。 すべての投稿を表示

2007年11月17日土曜日

[VB]月末日付取得

'*** 月末日付を取得します ***
' 変換できなかった場合は0を返します。
Public Function 月末日付(ByVal strMonth)
'*** 月末日付を取得します ***
' 変換できなかった場合は0を返します。
Public Function 月末日付(ByVal strMonth)
  Dim dt As DateTime = DateTime.Now
  月末日付 = 0
  On Error Resume Next
  月末日付 = Date.DaysInMonth(dt.Year, strMonth)
End Function

時間数値化と同じ内容のときにあったものです。
俺がなかったら今頃この仕事やめてます。
ウソですw
.NETと書いているけれどVBでも使えるはずです。
元はExcelVBAなんで。

[VB]文字列から特定の文字を抜き出し表示する


'必要な変数の宣言
Dim strArray() As String
Dim strTxt As String

'対象の文字列
strTxt = "2007/11/16"

'Splitを利用して対象の文字列を"/"で区切り、配列に代入する
strArray = Split(strTxt, "/")

'"/"で区切れた文字列をつなげる
Textbox.Text = strArray(0) & strArray(1) & strArray(2)

結果:


今回は"/"で区切る。

区切りの数が多くなった場合どうしたらいいのかな?

Forで回せば大丈夫だと思いたい。

とりあえず現在の業務終了予定。

絶対ダメ出し食らうけど、こっちもこっちで言い訳があるんでまぁ五十歩百歩だろうね。

[VB]あるデータを2つのテキストボックスに分割して表示させる方法


'必要な変数を宣言
Dim iFind As Integer
Dim stTarget As String
'初期化
stTarget = "11:00"

'先頭から':'を検索し、見つかった位置を取得する
iFind = InStr(1, stTarget, ":")

'先頭から↑で見つけた':'の一つ手前の位置までの文字列を取得する
textbox1 = Mid$(stTarget, 1, iFind - 1)
'↑で見つけた':'の一つ後ろから末尾の文字列を取得する
textbox2 = Mid$(stTarget, iFind + 1)


結果:



チョッチ仕様変更と来て、DBへの登録はいいものの表示になるとどうしたらよいものかと調べたら、いい感じに検索方法を2つ見つけたので組み合わせてみたらできた。

「InStr」は文字の検索方法です。

今回は時間を分割表示したいなど(あるとは思わないけど)、':'の位置を取得してます。

例では先頭からということで'1'を指定していますが、ここは2文字目でも4文字目でも指定可能です。

「Mid$」は文字列の一部を取得する方法です。

1では先頭から「InStr」で取得した':'がある位置の一つ手前までの文字列を取得しています。

2では「InStr」で取得した':'がある位置の一つ後ろから末尾の文字列を取得してます。

末尾なので引数省略が可能となってます。


説明って難しいね。