Excel VBA質問箱 IV

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

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


38593 / 76738 ←次へ | 前へ→

【43278】Re:コンボボックスの値をセルに表示するには...
発言  ichinose  - 06/10/7(土) 20:19 -

引用なし
パスワード
   ▼Mar さん:
こんばんは。


>すみません。興味を持ってみさせていただきました。
>で、質問させてください。
>
>このコードはシートに書くのでしょうか
>また、UserFormのコンボボックスを使うのでしょうか?

さて、どちらでしょうねえ??

以下のコード自体はユーザーフォームのモジュールでも

シートモジュールでもどちらでも作動しますよ。
(記述の仕方が良い悪いは別として)

例えば、新規ブックにユーザーフォーム(Userform1)を作成し
 そのユーザーフォームに
   コンボボックス(Combobox1)
   コマンドボタン(Commandbutton1)
 を一つずつ配置します。

Userform1のモジュールには、

'===================================================================
Option Explicit
'===================================================================
Private Sub UserForm_Initialize()
  With ComboBox1
    .Style = fmStyleDropDownList
    .List() = Array("aaa", "bbb", "ccc", "ddd", "eee")
    .ListIndex = 0
    End With
End Sub
'===================================================================
Private Sub CommandButton1_Click()
  Call commbobox1_
End Sub
'===================================================================
Private Sub commbobox1_()
  Dim crng As Range
  With ActiveSheet
    For Each crng In .Range("e9,e13,e17,e21,e25")
     If crng.Value = "" Then
       crng.Value = ComboBox1.Value
       Exit For
       End If
     Next
 
  End With
End Sub


標準モジュールに

'====================================================
sub main()
  userform1.show
end sub   


というコードでmainを実行してみてください。

ユーザーフォームが表示されます。
コンボボックスで適当な文字を選択した後、
コマンドボタンをクリックしてみてください。

コマンドボタンをクリックすると
  最初のクリックで セルE9に
  次のクリックで  セルE13に
  ・・・
  ・・・
  という順序でコンボボックスで選択された文字が
  コマンドボタンをクリックする度にセルに設定されます。
  (e9,e13,e17,e21,e25の順です)


また、新たな新規ブックのSheet1というシートに
   コマンドバー「コントロールツールボックス」にある
   コンボボックス(Combobox1)と
   コマンドボタン(Commandbutton1)を一つずつ配置してください。
   上記のコントロールはセルe9,e13,e17,e21,e25にはかぶらないように
   配置してください。


当該シートのシートモジュールに

'================================================================
Option Explicit
'=========================================================
Sub 設定()
  With ComboBox1
    .Style = fmStyleDropDownList
    .List() = Array("aaa", "bbb", "ccc", "ddd", "eee")
    .ListIndex = 0
    End With
End Sub
'=========================================================
Private Sub CommandButton1_Click()
  Call commbobox1_
End Sub
'=========================================================
Private Sub commbobox1_()
  Dim crng As Range
  With ActiveSheet
    For Each crng In .Range("e9,e13,e17,e21,e25")
     If crng.Value = "" Then
       crng.Value = ComboBox1.Value
       Exit For
       End If
     Next
 
  End With
End Sub


これで一度だけ「設定」実行後、ユーザーフォームの時と同様に
  コンボボックスで文字を選択後、コマンドボタンをクリックしてみてください。
  コマンドボタンをクリックするたび毎に
  セルe9,e13,e17,e21,e25の順にコンボボックスで選択された文字列が
  設定されます。


これでcommbobox1_()というプロシジャーがユーザーフォームでもシートのモジュール
のいずれでも使えるということが分かるかと思います。

試してみてください。


>>private sub commbobox1_()
>>  Dim crng As Range
>>  With ActiveSheet
>>    For Each crng In .Range("e9,e13,e17,e21,e25")
>>     If crng.Value = "" Then
>>       crng.Value = combobox1.Value
>>       Exit For
>>       End If
>>     Next
>>  
>>  End With
>>End Sub
0 hits

【43203】コンボボックスの値をセルに表示するには... みどりかなぶん 06/10/5(木) 18:17 質問
【43204】Re:コンボボックスの値をセルに表示するに... ponpon 06/10/5(木) 20:16 発言
【43253】Re:コンボボックスの値をセルに表示するに... みどりかなぶん 06/10/6(金) 23:32 お礼
【43206】Re:コンボボックスの値をセルに表示するに... ichinose 06/10/5(木) 20:27 発言
【43208】Re:コンボボックスの値をセルに表示するに... ponpon 06/10/5(木) 20:51 発言
【43254】Re:コンボボックスの値をセルに表示するに... みどりかなぶん 06/10/6(金) 23:36 お礼
【43263】Re:コンボボックスの値をセルに表示するに... Mar 06/10/7(土) 13:53 発言
【43278】Re:コンボボックスの値をセルに表示するに... ichinose 06/10/7(土) 20:19 発言
【43284】Re:コンボボックスの値をセルに表示するに... Mar 06/10/7(土) 22:29 質問
【43286】Re:コンボボックスの値をセルに表示する... ponpon 06/10/7(土) 23:31 発言
【43287】Re:コンボボックスの値をセルに表示するに... ichinose 06/10/8(日) 7:45 発言
【43289】Re:コンボボックスの値をセルに表示するに... Mar 06/10/8(日) 10:19 お礼
【43290】Re:コンボボックスの値をセルに表示するに... ponpon 06/10/8(日) 10:35 発言
【43295】Re:コンボボックスの値をセルに表示するに... Mar 06/10/8(日) 13:57 お礼

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