Excel VBA質問箱 IV

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

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


14680 / 76738 ←次へ | 前へ→

【67547】Re:ActiveSheetにあるCombobxの値
発言  kanabun  - 10/12/12(日) 10:59 -

引用なし
パスワード
   ▼ichi さん:
>   >> 変数の格納のしかたが解りません
>   >具体的にお願いします
>出来たComboboxの中に存在する値をクリックして取得し、変数に格納
>この変数をExcel上のセルに書きたいのです


「変数」という言葉が、分かったようで分からないのですが、
つまり、↓こういうことですか?

フォームのComboBox(ドロップダウンのこと)でどれかのリストが
選択されたら、その選択アイテムをワークシート上のセルに表示する


▼もしそういうことだとすると、これはフォームのDropDownを
 使わなくても、「入力規則」でできることですよね?

手順1. 「コード」シートの範囲に名前を定義しておく
   「コード」シートのリスト範囲を選択
   Ctrl+[F3]で(名前定義)
      名前    myList ←好きな名前をつけてください
      参照範囲  =コード!$B$4:$B$8
手順2. 入力規則を設定するシートの目的のセル(たとえば
   Sheet1![A4] とします)を選択し、
   メニュ−[データ]-[入力規則]-[設定]タブ
    (入力値の種類)→ リスト
    (元の値)  → =myList

これだけで、[A4]セルがアクティブになれば myListという名前を
つけた範囲がDropDownにリストされていますから、そのどれかの
リストを選択すればただちに [A4]セルに選択されたアイテムが
代入されます。

▼これをシート上に置いた
 フォームツールボックスのドロップダウンComboを使ってやろうと
すると、DropDown内のリストのどれかのアイテムが選択されたとき、
発生するイベントがない(コントロールツールボックスのComboBoxには
それがあります)ので、なんらかの代替手段を考えないといけません。

DropDown内のアイテムが選択されたときというタイミングを考慮に
入れなくてもよいのであれば、
さきほど↓のようにして作ったDropDown
> Sub AddDropDown()
>  With ActiveSheet.DropDowns.Add(180, 20, 70, 15)
>    .Name = "myCombo"
>    .ListFillRange = "コード!$B$4:$B$7"
>    .LinkedCell = "$B$4"
>    .DropDownLines = 8
>  End With
> End Sub
の .LinkedCell = "$B$4" が [B4]なので、
このCellに現在DropDownの何番目のリストが選択されているか
の情報が数値で入っていますから、
標準モジュールに
Sub SetDropDownValue()
  Dim n As Long
  n = [B4].Value
  If n > 0 Then
    [A4].Value = Excel.Range(DropDowns("myCombo") _
           .ListFillRange).Item(n).Value
  End If
End Sub
のように書いておき、手動で Sub SetDropDownValue() を呼び
出すことにより、[A4]セルに選択されているアイテムが転記で
きます。


▼ただ、↑は実際におやりになりたいことではないですよね?
最初の 入力規則のようなことがやりたいのであれば、もうちょ
っと工夫が必要です。

手順1. 標準モジュールに以下のプロシージャを書いておきます。
Sub myCombo_Change()

  With ActiveSheet.DropDowns(Application.Caller)
   
    ActiveSheet.Range("A4").Value = .List(.ListIndex)

  End With
End Sub

手順2. シート上のDropDown (myCombo) を右クリック
  マクロの登録メニューより マクロ名をうえの
  「myCombo_Change」とします。

これだけです。で、DropDown内のどれかのアイテムを選択しま
すと、[A4]セルにその選択アイテムの値が代入されます。


いまやりたいことはどういうことかを再度吟味し、最適な方法を
選んでください。
1 hits

【67543】ActiveSheetにあるCombobxの値 ichi 10/12/11(土) 12:01 質問
【67544】Re:ActiveSheetにあるCombobxの値 kanabun 10/12/11(土) 17:05 発言
【67546】Re:ActiveSheetにあるCombobxの値 ichi 10/12/12(日) 9:29 質問
【67547】Re:ActiveSheetにあるCombobxの値 kanabun 10/12/12(日) 10:59 発言
【67548】Re:ActiveSheetにあるCombobxの値 ichi 10/12/12(日) 12:12 お礼
【67567】Re:ActiveSheetにあるCombobxの値 ichi 10/12/14(火) 11:20 質問
【67568】Re:ActiveSheetにあるCombobxの値 Jaka 10/12/14(火) 11:32 発言
【67569】Re:ActiveSheetにあるCombobxの値 kanabun 10/12/14(火) 13:08 発言
【67570】Re:ActiveSheetにあるCombobxの値 ichi 10/12/14(火) 14:15 お礼
【67545】Re:ActiveSheetにあるCombobxの値 kanabun 10/12/11(土) 17:09 発言

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