![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
現在エクセルのVBAを勉強中(かなり初心者ですが。。)で、仕事でも使う封筒印刷用のマクロを組んでみようと思っています。
作成したユーザーフォーム内のリストボックスに、宛名一覧を入力したワークシートからデータを引っ張ってきて表示しようと思っているのですが、宛名一覧を記述しているシートがアクティブの際にはうまく動作するのですが、その他のシート(封筒のレイアウトを書き込んでいるシートなど)がアクティブの時には
実行時エラー'1004'
アプリケーション定義まてはオブジェクト定義のエラーです。
というエラーが表示され、うまく行きません。
うまく行く方法をご教授いただけたらと思います。よろしくお願いいたします。
ソース(標準モジュールに記述)
Sub adrsList()
UserForm1.ListBox1.List = Worksheets("address").Range(Cells(Worksheets("address").UsedRange.Rows.Count, 8)).Value
UserForm1.Show
End Sub
※address:住所録のデータがH列に格納されているワークシートです
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんばんは!
address SheetのH1セル以降にデータがあるとすると
Dim lastRow As Long
lastRow = Worksheets("address").Cells(Rows.Count, "H").End(xlUp).Row
With UserForm1
.ListBox1.RowSource = "address!H1: H" & lastRow
.Show
End With
としたらどうなりますか?
※ 検証はしていませんが、一般的には プロパティで表示データを決めるコトが多いので
RowSource を使ってみました。
address Sheetの1行目が項目行でデータは2行目以降にある場合は
>H1 を H2 として調整してみてください。m(_ _)m
No.2
- 回答日時:
初心者さんが必ず一度は引っかかるミスですが、エラーの直接の原因は
Cells(Worksheets("address").UsedRange.Rows.Count, 8)
このcellsが「どのシートの」それなのか、明示されていません。
このときVBAは「アクティブシートの」指定セルを取得しようとしますが、それが
worksheets("address").range( )
の中に入っている、つまりaddressシートのセル範囲を指定するのに他のシートのセルを使おうとして矛盾が発生しています。
このエラー自身の直接の解決方法は、
Worksheets("address").Range(Worksheets("address").Cells(Worksheets("address").UsedRange.Rows.Count, 8))...
のように、該当のcellsもしっかりaddressシートのそれだと指定する事になります。
今回のご質問の直接の回答は、ここまでです。
で。
もっとも次の問題として、これでホントにリストボックスに格納したいセル範囲が取得できてるのかという部分が、非常にアヤシイですね。
具体的にaddressシートのどの範囲をリストボックスに取り込みたいのか、つまりそもそも「具体的に」(あなたがこーなったらいいなと願ってることじゃなく)何がどういう理屈でどーなって「いま欲しいセル範囲」になるのか、そこんところを良く考えてやる必要がありそうです。
ここんところは今回のご質問内容じゃありませんので、実際のあなたのaddressシートの、具体的にどこ番地のセルにどんなデータが記入されてて、そこからどんな具合にlistboxに取り込みたいのか、あなたのエクセルを回答者の手元に再現できるように手抜きせず情報提供して、新しい次のご相談として投稿し直してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) エクセルのマクロとシートの保護について教えてください。 1 2022/10/18 08:36
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) vba シート名の一覧を2列に分けるには 5 2023/04/24 08:56
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで入力シートから別シ...
-
Excel ハイパーリンク先のセル...
-
Excelの中央値の複数条件について
-
VBA セルの値と同じ名前のシー...
-
ExcelVBAで、指定したシートに...
-
IF, ISNUMBER, INDIRECTの組み...
-
エクセル自動の年月
-
質問:特定文字列から空白行ま...
-
エクセルVBA:表の内容を担当者...
-
エクセル シフト勤務表から、...
-
エクセルにて別シートの値を参...
-
エクセル 毎日更新する表のデ...
-
Excel VBA 数式を参照範囲分コ...
-
エクセルデータの変更を反映さ...
-
該当するデータを書式設定ごと...
-
VBAでシート名をセルから取得し...
-
Excelで住所録。最初にページ設...
-
エクセル マクロを使って日々...
-
エクセルの複数ページでのグラ...
-
エクセル:複数シートのデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで入力シートから別シ...
-
Excel 複数のシートからグラフ...
-
Excelの中央値の複数条件について
-
エクセル シフト勤務表から、...
-
IF, ISNUMBER, INDIRECTの組み...
-
エクセルのワークシートが重く...
-
ExcelVBAで、指定したシートに...
-
VBA セルの値と同じ名前のシー...
-
Excel ハイパーリンク先のセル...
-
エクセル自動の年月
-
VBAのoffsetの動き方について教...
-
エクセルで入力→日付を自動判別...
-
エクセルVBA:表の内容を担当者...
-
エクセル マクロを使って日々...
-
エクセルについて質問です 日付...
-
ピボットテーブルから抽出デー...
-
VBAでシート名をセルから取得し...
-
Excelの選択肢をポップアップリ...
-
VBAを利用しオートフィルタで日...
-
Excel日付変更との参照先の連動
おすすめ情報