Excel VBA質問箱 IV

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

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


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

【37610】コンボボックスの内容の消し方と、タブ移動について kurumi 06/5/12(金) 21:24 質問[未読]
【37628】Re:コンボボックスの内容の消し方と、タ... kobasan 06/5/13(土) 7:38 発言[未読]
【37629】Re:コンボボックスの内容の消し方と、タ... kurumi 06/5/13(土) 9:11 発言[未読]
【37631】Re:コンボボックスの内容の消し方と、タ... Hiroko 06/5/13(土) 11:59 発言[未読]
【37638】Re:コンボボックスの内容の消し方と、タ... kobasan 06/5/13(土) 15:01 発言[未読]

【37610】コンボボックスの内容の消し方と、タブ移...
質問  kurumi  - 06/5/12(金) 21:24 -

引用なし
パスワード
   ユーザーフォームにコンボボックスが7つ有り、順番は、左から
1、2、3、4、6、5、13
と並んでおり左から、TABキーを押していくと、1234と進み
次に何故か、コマンドボタンに飛んでしまいます。
やりたいのは、上記の順番通りにカーソルを進めたいのです。
それと、コマンドボタンを作り、コンボ6以外の内容をクリアー
させたいのですが、下記のように記述して、実行しても、何故か、
1234のコンボボックスしか、空白にならないのですがどうして
でしょうか?

Me.ComboBox1.Clear
Me.ComboBox2.Clear
Me.ComboBox3.Clear
Me.ComboBox4.Clear
Me.ComboBox5.Clear
Me.ComboBox13.Clear

【37628】Re:コンボボックスの内容の消し方と、タ...
発言  kobasan  - 06/5/13(土) 7:38 -

引用なし
パスワード
   おはようございます。

>ユーザーフォームにコンボボックスが7つ有り、順番は、左から
>1、2、3、4、6、5、13
>と並んでおり左から、TABキーを押していくと、1234と進み
>次に何故か、コマンドボタンに飛んでしまいます。
>やりたいのは、上記の順番通りにカーソルを進めたいのです。

まずこの部分について、

これは、コンボボックスやコマンドボタンを作った順が影響していると思います。

対策としては、
まず、ブックを起動して、ユーザーフォーム上のコンボボックスとコマンドボタンを全て削除して、カーソルを進めたい順にコンボボックスとコマンドボタンを全て作り直してください。

注意
この修正をするときは、ブックを起動しても、ユーザーフォームを起動させないで修正してください。そうしないと、修正後、マクロが上手く動かないことがあります。
こうなった場合は、コンピューターを再起動させ、修正したブックを読み込んだ後、すぐ上書き保存して、ブックを閉じ、それから、再度ブックを読み込まないと上手く動かないようになります。私の場合、こんなことがあったので書いておきます。


以下の現象は、上記の問題が解決してからにしましょう。

>それと、コマンドボタンを作り、コンボ6以外の内容をクリアー
>させたいのですが、下記のように記述して、実行しても、何故か、
>1234のコンボボックスしか、空白にならないのですがどうして
>でしょうか?
>
>Me.ComboBox1.Clear
>Me.ComboBox2.Clear
>Me.ComboBox3.Clear
>Me.ComboBox4.Clear
>Me.ComboBox5.Clear
>Me.ComboBox13.Clear

【37629】Re:コンボボックスの内容の消し方と、タ...
発言  kurumi  - 06/5/13(土) 9:11 -

引用なし
パスワード
   ありがとうございます。
教えていただいたやり方で解決しました。

>>それと、コマンドボタンを作り、コンボ6以外の内容をクリアー
>>させたいのですが、下記のように記述して、実行しても、何故か、
>>1234のコンボボックスしか、空白にならないのですがどうして
>>でしょうか?
>>
>>Me.ComboBox1.Clear
>>Me.ComboBox2.Clear
>>Me.ComboBox3.Clear
>>Me.ComboBox4.Clear
>>Me.ComboBox5.Clear
>>Me.ComboBox13.Clear

上記の所は間違えで、コンボ6,5,13だけでしたので、
以下の様に記述してみましたが、何もおこらず、コンボボックスに
内容が残ったままでした。

Me.ComboBox6.Clear
Me.ComboBox5.Clear
Me.ComboBox13.Clear
  

【37631】Re:コンボボックスの内容の消し方と、タ...
発言  Hiroko  - 06/5/13(土) 11:59 -

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

ComboBox1.Value = ""
ComboBox2.Value = ""
ComboBox3.Value = ""
ComboBox4.Value = ""
ComboBox5.Value = ""
ComboBox6.Value = ""

これで消えると思いますが。
消したくないboxはコメント処理にされると残リます。

※kobasanがもっと良い処理を教えてくれるでしょうが、

【37638】Re:コンボボックスの内容の消し方と、タ...
発言  kobasan  - 06/5/13(土) 15:01 -

引用なし
パスワード
   今日は。
ComboBox1からComboBox6までつくり、いろいろ試してみたのですが

  ComboBox1.List = Array("A", "B", "C")
  ComboBox2.List = Array(1, 2, 3)
  '
  With Sheets("Sheet1")
    Me.ComboBox3.List = .Range(.Cells(1, 1), .Cells(20, 1).End(xlUp)).Value
  End With
  '
  For i = 1 To 5
    ComboBox4.AddItem Sheets("Sheet1").Cells(i, 1).Value
  Next
のような方法でリスト設定したら

  ComboBox1.Clear
  ComboBox2.Clear
  ComboBox3.Clear
  ComboBox4.Clear
でリストを、クリアできます。

しかし、下記サンプルコードでやると、ComboBox5.Clearで ComboBox5 のリストは残ります。
どんなコードで残るのか分りませんが、下記例では、On Error Resume Nextがあるために起こっています。

リストの設定の仕方をComboBox1からComboBox4の方法で設定してみて、ComboBox*.Clear
でクリアしてみたりして、いろいろ試してみてください。
今はこれくらいのことしか言えません。

Private Sub CommandButton1_Click()
  On Error Resume Next
  ComboBox1.Clear
  ComboBox2.Clear
  ComboBox3.Clear
  ComboBox4.Clear
  ComboBox5.Clear
  ComboBox6.Clear
End Sub

Private Sub UserForm_Initialize()
Dim i As Integer
  ComboBox1.List = Array("A", "B", "C")
  ComboBox2.List = Array(1, 2, 3)
  '
  With Sheets("Sheet1")
    Me.ComboBox3.List = .Range(.Cells(1, 1), .Cells(20, 1).End(xlUp)).Value
  End With
  '
  For i = 1 To 5
    ComboBox4.AddItem Sheets("Sheet1").Cells(i, 1).Value
  Next
  '
  'この方法では ComboBox5.Clear でエラー発生
  ComboBox5.RowSource = "Sheet1!a1:a5"
  'ComboBox5.RowSource = "a1:a5"
  '
  ComboBox6.List = Array(1, 2, 3)
End Sub


>>>それと、コマンドボタンを作り、コンボ6以外の内容をクリアー
>>>させたいのですが、下記のように記述して、実行しても、何故か、
>>>1234のコンボボックスしか、空白にならないのですがどうして
>>>でしょうか?
>>>
>>>Me.ComboBox1.Clear
>>>Me.ComboBox2.Clear
>>>Me.ComboBox3.Clear
>>>Me.ComboBox4.Clear
>>>Me.ComboBox5.Clear
>>>Me.ComboBox13.Clear
>
>上記の所は間違えで、コンボ6,5,13だけでしたので、
>以下の様に記述してみましたが、何もおこらず、コンボボックスに
>内容が残ったままでした。
>
>Me.ComboBox6.Clear
>Me.ComboBox5.Clear
>Me.ComboBox13.Clear
>

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