|
▼masa さん:
こんばんは。
>エクセルのシートからボタンをクリックしてUserFormを開きます。UserFormにコンボボックス作りたいと思っています。ボタンをクリックしてUserFormは作ることができたのですがコンボボックスを追加したら動かなくなりました。
この御質問、以下のご提示されたコードで何をしたいのか
が 記述されていません。
>
>module1 には以下のものを書いてあります。
>Sub ボタン1_Click() ’・・・1.
>
> UserForm1.Show
>
>End Sub
>---------------------------------------------------
>UserFormのコードは
>
>Option Explicit ’・・・2.
> Public MyData As Range
> Public MyLcount As Integer
>Sub DlgShow()
> UserForm1.ComboBox1.Text = ActiveCell.Value
>End Sub
>--------------------------------------------------
>Private Sub UserForm_Initialize() '・・・3.
> Sheets("データ").Select
> Set MyData = Range("G2").CurrentArray
'エラーメッセージの直接の原因は↑これです。
'CurrentArrayプロパティは
'指定されたセルが配列の一部のとき、配列全体を返すプロパティです。
'セルG2が配列の一部でなければ エラーとなります。
>End Sub
>と書きました。1.だけのときはうまくUserFormが開くのですが2.、3.を付け加えると”該当するセルが見つかりません”というエラーメッセージが出ます。どうやったら作れるのかを教えてもらえませんか。
>ちなみに”入力”というシートにボタンを作り”データ”というシートのG2からG5までにリストを作っています。G2からG5を分類という名前をつけました。
>私はVBAをはじめてまだ間もないため本片手に試行錯誤やっています。よろしくお願いします。
はっきりした仕様が記述されていないので 私の想像です。
”データ”というシートのセルG2からG5の範囲を
名前の定義を使って、「分類」という名前を付けたのですね?
ならば、Userformのモジュールを
'=====================================================
Option Explicit ’・・・2.
Public MyData As Range
Public MyLcount As Integer
'↑これは何に使うかわからないので取り合えず付けときます
'=======================================================
Private Sub UserForm_Initialize() '・・・3.
Set MyData = application.Range("分類")
with ComboBox1
.list = MyData.value
.listindex=0
end with
end sub
として試してみてください。
|
|