[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『別のファイルをリストボックスとして参照したい』(超初心者)
抜き出しをサボって検索だけですが^w^
(Null)
ごめんなさい。超初心者なので分かりません。リストボックスの作成で、別のシートで出来る方法は分かったのですが、別のファイルで作成する方法が分かりません。よろしくお願いいたします。
(超初心者)
この辺はどうですか?
(Null)
やはり出来ません。最初のVBAの勉強からしないと、教えていただいたことが理解できないみたいです。本で勉強しようと思いますが。もし時間ありましたら教えてください。
ファイル名:商品名一覧 シート名:商品名一覧
ファイル名:見積書原稿 シート名:見積
ファイル名:見積書原稿 シート名:見積 のセルB18からB42の欄に
ファイル名:商品名一覧 シート名:商品名一覧のB2からB59までの項目をリストBOXかコンボboxを利用して入力したいと考えています。よろしくお願いいたします。
(超初心者)
BJ
BJさんありがとうございます。しかし、セル若しは、別のシートにも持ってきてするのではなく、あくまで別のファイル 商品名一覧をリスト化して参照したいのです。すいませんが教えてください。
(超初心者)
誰か教えてください。お願いいたします。
(超初心者)
使用しているのはExcel2003です。
(超初心者)
たとえば、AブックのSheet1のA1:A5の範囲を BブックのSheet1に設置した、 コントロールツールボックスから作成したコンボボックス (ComboBox1)に表示する場合、 BブックのSheet1のシートモジュール (シートタブを右クリック→コードの表示 をして出てきた所)に
'------ Private Sub Worksheet_Activate() Me.ComboBox1.ListFillRange = "[A.xls]Sheet1!A1:A5" End Sub '------ ↑を貼り付け。
Aブックが開いている場合、BブックのSheet1が 選択されるきっかけでComboBox1に値を参照します。
(HANA)
ありがとうございます。
すいません '------ の意味が分かりません。教えてください
(超初心者)
返信は、下のコメント欄から行うか [返信・編集]から行う場合は、前の書き込みとの間に 「----」(半角マイナス4つ)を入れて下さい。
再度のご質問に関しては、意味が良く分からないのですが・・・・ 「'------」の間に挟まれたコードをコピーして貼り付けて下さい。 「'------」は本文との区切り線でそれ以上の意味は有りません。
(HANA)
何をどうやったらどうなりましたか? 同じ事をこちらで出来るだけの情報を載せて下さい。
(HANA)
ファイル名:見積書原稿 シート名:見積 のセルB18からB42の欄に
ファイル名:商品名一覧 シート名:商品名一覧のB2からB59までの項目をリストBOXかコンボboxを利用して入力したいと考えています。
Private Sub Worksheet_Activate()
Me.ComboBox1.ListFillRange = "[作業種別一覧.xls]Sheet見積!b2:b59"
End Sub
を入力しても、何も変わりません。またマクロが使用できませんのメッセージが出てきて、コンボボックスのデザインモードから抜け出せません。セキュリティは中にしてあるのですが?超初心者で本当に申し訳ありません。よろしくお願いいたします。
(超初心者)
まずはこちらでご確認下さい。 http://support.microsoft.com/kb/824007/ja
マクロが使用できるように成らないと話しに成りませんので 上の方法を試しても使えるようにならない場合は Web検索等行って、使えるようにして下さい。
(HANA)
その後どうなりましたか?
(HANA)
リストが有るブック名は「作業種別一覧」ですか?「商品名一覧」ですか?
リストが有るシート名は「Sheet見積」ですか?「商品名一覧」ですか?
作成したコンボボックスの名前は「ComboBox1」に間違いありませんか?
リストが有るブックは開いていますか?
コードを記入したシート以外のシートを一度選択し コードを記入したシートをもう一度選択してみていますか?
(HANA)
ご教授よろしくお願いいたします。
(超初心者)
・・・えっと、コードを正しい物に変更してください。 >Me.ComboBox1.ListFillRange = "[作業種別一覧.xls]Sheet見積!b2:b59" このコードは、言っておられる物と全く違いますよね?
それから、 >コードを記入したシート以外のシートを一度選択しコードを記入したシートをもう一度選択 やって下さい。
(HANA)
現在お使いのコードを載せてください。
(HANA)
Me.ComboBox1.ListFillRange = "[商品名一覧.xls]Sheet一覧!b2:b59" End Sub よろしくお願いいたします。 (超初心者)
リストのあるシートの名前は 「一覧」でしょ?
>Sheet一覧!b2:b59 これでは「Sheet一覧」というシート名です。
(HANA)
うまく行かないのですか?
(HANA)
新しいブックのSheet1に コンボボックスと、コマンドボタンを一つずつ作成。 A1:A5に「A , B , C , D , E」と一つずつ入力。
Sheet1のシートモジュールに Private Sub CommandButton1_Click() Me.ComboBox1.ListFillRange = "A1:A5" End Sub ↑を貼り付け。
シートに戻って、コマンドボタンを押すと A1:A5の内容がコンボボックスに表示されますか?
(HANA)
それでは、Sheet2の A1:A5に「AA , BB , CC , DD , EE」と一つずつ入力。 先ほどのコードの "A1:A5" 部分を "Sheet2!A1:A5" に変更。
コマンドボタンを押すと Sheet2のA1:A5の内容が選択出来るようになりますか?
(HANA)
それではもう一つブックを作成し、Sheet1の A1:A5に「AAA , BBB , CCC , DDD , EEE」と一つずつ入力。 その後、場所はどこでも良いので ブック名を Book10 として保存してください。
コンボボックスが有るブックのコード "Sheet2!A1:A5" の部分は "[Book10.xls]Sheet1!A1:A5" に変更です。
シート名は間違えず、データを入れたシート名と合わせてください。
コマンドボタンを押すと Book10のSheet1のA1:A5の内容が選択出来るようになりますか?
(HANA)
では、ブック名・シート名・範囲 を 実際の物に合わせてください。 Sheet1のシート名を「一覧」に変更 B2セルから下方向にB59まで 連番でも何でも良いので何かを入力。 ブック名を「商品名一覧」として保存。
コードは "[商品名一覧.xls]一覧!b2:b59" に変更ですよね。
どうですかね?
(HANA)
いやいや、まだ終わりじゃないですよ。 どこが違ってたか分かりましたかね?
>ファイル名:見積書原稿 シート名:見積 のセルB18からB42の欄に ってことは、コンボボックスを25個作るのですよね?
・・・・まぁ、ComboBox1〜25迄 25回書いても良いんですけど・・・。
取りあえず、動くようになったコードをもう一度載せてください。
(HANA)
Me.ComboBox1.ListFillRange = "[商品名一覧.xls]一覧!B2:B59" End Sub
です。
ComboBox1〜25迄を作らないで、見積書原稿 シート名:見積 のセルB18からB42の欄にリストから入力する方法はあるのでしょうか?
又、最初に教えていただいた
Private Sub Worksheet_Activate()
Me.ComboBox1.ListFillRange = "[商品名一覧.xls]Sheet一覧!b2:b59" End Sub と違う点は何なんでしょうか?本当に初心者で申し訳ありません。よろしくお願いいたしす。 (超初心者)
違う点・・・? 1.Private Sub CommandButton1_Click() 2.Private Sub Worksheet_Activate() の違い という事でしょうか? (シート名は違いますが、その点は大丈夫なのですよね?)
1番の方は、そのシートにある【コマンドボタン1を押した】ときに 以下のマクロが実行されて、コンボボックスに値が反映されます。
2番の方は、そのシートが【選択された(アクティブになった)】時に 以下のマクロが実行されて、コンボボックスに値が反映されます。
1のコードの1行目を2のコードの1行目と差し替えた後 別のシートを選んで、もう一度「見積」シートを選ぶと 今度は反映されると思いますけど・・・駄目ですかね?
まぁ、使う前にボタンを押す。使用中に一覧を変更したらボタンを押す。 というだけなので、1の方が良いかもしれません。
>ComboBox1〜25迄を作らないで いや、ComboBoxは作ってください。 セルの行列幅を決めたら 図形描画ツールバーの 図形の調整(R)▼ → 位置合わせ(S) → グリッド(G) を選択しておいて、Ctrlキーを押しながら ドラッグ&ドロップをすると、割と簡単に・綺麗に複写出来ると思います。
コードは Private Sub CommandButton1_Click() Dim i As Integer On Error Resume Next For i = 1 To 25 With Me.OLEObjects("ComboBox" & i) .ListFillRange = "[商品名一覧.xls]一覧!B2:B59" .Object = "" End With Next i On Error GoTo 0 End Sub これでやってみて下さい。
Me.ComboBox1.ListFillRange = "[商品名一覧.xls]一覧!B2:B59" Me.ComboBox2.ListFillRange = "[商品名一覧.xls]一覧!B2:B59" Me.ComboBox3.ListFillRange = "[商品名一覧.xls]一覧!B2:B59" Me.ComboBox4.ListFillRange = "[商品名一覧.xls]一覧!B2:B59" : : と、25行書かずに済むと言うだけの話ですけどね。
(HANA)
>HANAさんの言うように作成すると出来ました。 と言うのが良く分からないですけど・・・ 出来たのなら良いと思います。(ムセキニン)
良かったですね〜。(私も良かったです。笑)
(HANA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.