|
Jaka さん、こんちゃ^^
>下やってみると、もっと悩むかも...。
>フォームにコンボボックス、ボタンを2つあるとして。
>
>Private Sub CommandButton1_Click()
> Dim i As Integer, aa As Variant, bb As Variant
>
> For i = 0 To ComboBox1.ListCount - 1
> ComboBox1.ListIndex = i
> Cells(i + 1, 1).Value = ComboBox1.List(ComboBox1.ListIndex)
> Next
>
> MsgBox "検査値 " & ComboBox1.List(ComboBox1.ListIndex)
> bb = Application.Match(ComboBox1.List(ComboBox1.ListIndex), Columns(1), 0)
>
> If IsError(bb) Then
> MsgBox "エラー"
> aa = Application.Match(Val(ComboBox1.List(ComboBox1.ListIndex)), Columns(1), 0)
> MsgBox "Valで数値変換後 " & aa
> Else
> MsgBox bb
> End If
>End Sub
>
>Private Sub CommandButton2_Click()
> Dim st As String
> st = 4
> aa = Application.Match(st, Columns(1), 0)
> If IsError(aa) Then
> MsgBox "エラー"
> Else
> MsgBox aa
> End If
>End Sub
>
>Private Sub UserForm_Initialize()
> For i = 0 To 5
> ComboBox1.AddItem i
> Next
>End Sub
やってみました。
コンボボックスも文字列っちゅーことですね(や、当たり前ですが)
しかし、セルを「文字列」に書式変更してやってみても、やっぱりエラーが出て、
データ変換してやらないとダメ!というのが、????です。
なんか、いろいろいじってたら、何がなんだかわからんくなってきました(T_T)
>例えば、
>表示形式が標準のA1:A10に数字をいれてから、表示形式を文字列に変更後、
>(数字は左よりになる。)
>A11に =SUM(A1:A10) と入れてみて下さい。
>計算できます。
「文字列に変更」したつもりが、実は内部では出来てないってことなんですかね?
だったら↑の件も納得ですが・・・・
>逆に文字列としたB1:B10に数字を入力後、表示形式を標準に戻してから、
>(数字は左よりのまま)
>B11に =SUM(B1:B10) と入れてみて下さい。
>計算できません。
こっちも、一見書式変更してるように見えても、実は!なのかな?
「B11」に、「0」と入りますけど、数式バーで、エンターして入力し直すと、
「=SUM(B1:B10)」と表示されるのがおかしい(笑)
書式見たら「文字列」になってしまってるし。
途中で書式を変更すると、なんかやっかいですね。
ユーザーが書式を変更したのと、実際に変更されたのではタイミングが違うみたい。
エクセル君の心の声・・・
「あ、書式が変更されちゃった。面倒だなあ・・・まあ、いいや!見た目だけ変更されたようにしとこ」
みたいな感じ〜〜〜
|
|