Excel VBA質問箱 IV

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

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


2119 / 13645 ツリー ←次へ | 前へ→

【69848】コンボボックスのデータ sachi 11/9/3(土) 16:33 質問[未読]
【69850】Re:コンボボックスのデータ UO3 11/9/3(土) 23:06 回答[未読]
【69853】Re:コンボボックスのデータ ぐらぐら 11/9/4(日) 10:56 発言[未読]
【69854】Re:コンボボックスのデータ とおりすぎ 11/9/4(日) 11:03 回答[未読]
【69855】Re:コンボボックスのデータ ぐらぐら 11/9/4(日) 11:06 発言[未読]
【69857】Re:コンボボックスのデータ Jaka 11/9/5(月) 11:01 発言[未読]

【69848】コンボボックスのデータ
質問  sachi  - 11/9/3(土) 16:33 -

引用なし
パスワード
   はじめまして
テキストボックス1の日付の値とセルA1からA20までの日付の値
が同じだったらBのセルにコンボボックスのデータを
入れたいのですがどうしたらいいのでしょうか
どなたか教えてください。
よろしくお願いします。

【69850】Re:コンボボックスのデータ
回答  UO3  - 11/9/3(土) 23:06 -

引用なし
パスワード
   ▼sachi さん:

なんとなく、内容が以下のトピと似ていますが、同じ人?
それは、別にかまわないんですけど。

www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=69801;id=excel
www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=69728;id=excel
www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=69727;id=excel

A1:A20に同じ日付は1つしかないという前提で。
(以下の例ではコマンドボタン1がクリックされたら処理します)

Private Sub CommandButton1_Click()
  Dim d As Double
  Dim z As Variant
  
  If Not IsDate(TextBox1.Value) Then
    MsgBox "日付が間違ってますよ〜"
    Exit Sub
  End If
  
  d = DateValue(TextBox1.Value)
  z = Application.Match(d, Range("A1:A20").Value2, 0)
  If IsNumeric(z) Then
    Range("B" & z).Value = ComboBox1.Value
  Else
    MsgBox "その日付はなかったぞぉ!"
  End If
  
End Sub

【69853】Re:コンボボックスのデータ
発言  ぐらぐら  - 11/9/4(日) 10:56 -

引用なし
パスワード
   ▼UO3 さん:
>  d = DateValue(TextBox1.Value)
>  z = Application.Match(d, Range("A1:A20").Value2, 0)


Value2(配列)をつかわなくても、セル範囲(Range)のままでよさそうですょ。

  z = Application.Match(d, Range("A1:A20"), 0)

【69854】Re:コンボボックスのデータ
回答  とおりすぎ  - 11/9/4(日) 11:03 -

引用なし
パスワード
   配列かどうかより、シリアル値かどうかじゃね。

【69855】Re:コンボボックスのデータ
発言  ぐらぐら  - 11/9/4(日) 11:06 -

引用なし
パスワード
   検索値はシリアル値。
検索範囲はセル範囲でよいと思います。
あえてシリアル値配列にしなくても大丈V。

【69857】Re:コンボボックスのデータ
発言  Jaka  - 11/9/5(月) 11:01 -

引用なし
パスワード
   A1:A20が日付データなら、

z = Application.Match(シリアル値, Range("A1:A20"), 0)


Dim st As String, ans As Variant
st = "2011/9/5"
ans = Application.Match(CDbl(CDate(st)), Range("A1:A20"), 0)
If IsError(ans) Then
  ない
Else
  ある
End If

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