• ベストアンサー

マクロ フォームのオブジェクト名

マクロのフォームを利用して、入力シートを作成しています。 セルに入力したフォームのオブジェクト名を利用して、繰り返し記述を作ったのですが、エラーが発生してしまいます。 Form名.List = ary_d → 「オブジェクトが必要です」のエラー セルに入力したフォームのオブジェクト名では無理なんでしょうか? 解決方法があれば、参考にしたいので宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.2

No.1の追加です。 Form名.Listはどのコントロールのリストか不明だと思いますから No.1で紹介したサイトの最後の例 Dim myForm As UserForm1 Set myForm = UserForms.Add("UserForm1") myForm.Show の方を利用したとして ListBox1でしたら Form名.Controls("ListBox1").List のようにしてみてください。 また Form名がInitializeしているフォームの中のコントロールの事でしたら (としたら別の名前にした方ががいいと思いますが) Me.Controls(Form名).List = ary_d

その他の回答 (1)

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.1

以下のサイトを参考にしてください。 UserFormを変数で操作する http://officetanaka.net/excel/vba/tips/tips103.htm

関連するQ&A

  • ExcelVBA ユーザーフォームのオブジェクト名

    ExcelVBA ユーザーフォームのオブジェクト名について質問です。 Excel2003で、あるユーザーフォームのオブジェクト名を「ユーザーフォーム表示中」とし、 ユーザーフォーム表示中.Showで表示するように記述しました。 何度かテストを済ませ、他のプログラムも含めて完成したと思ったのですが、他のPCでエラー報告があり、コードを確認したところ、なぜか、ユーザーフォーム表示.Show(中の字が消えている)になっていました。 もちろん誰かが記述を変更することは考えられません。 以前、自分のPC内でも同じようなことがあり、いくら原因を探しても見つからず、ユーザーフォームのオブジェクト名を削除された記述に合わせて対処したことがあります。 これは何が原因なのでしょうか。 文字数制限か何かあるのでしょうか。

  • VBAマクロのオブジェクト名の最大の長さについて

    こんにちは。 現在、32bit版Vistaで、Excel2007のVBAマクロについて勉強しています。 添付しました画像のように、自分で作成した標準モジュールのオブジェクト名の所に 「Functionプロシージャを使用したマクロ」 と入力すると、 「オブジェクト名が不正です・・・」 というエラーが表示されます。 どうやら、文字数が多すぎたようで、 「Functionプロシージャの使用」 だと、エラーは出ません。 VBAマクロのオブジェクト名の最大の長さって、どうやって決まるのでしょうか? どこかで、255文字までと聞いた事がある気がするのですが、今回だと、40バイト程度でエラーが出ます。 これについて、何か知っておられる方がいらっしゃれば、是非アドバイスを頂きたいと思います。

  • 【VBA】マクロのルールについての文章 解説

    マクロのルールについて記載された一文について、次の内容を噛み砕いて教えていただけますか。 さっぱりわかりません。。。 「イベントを利用するマクロはオブジェクトのモジュールに記述する」 ワークシートをアクティブにすると、アクティブになったワークシートでActivateイベントが発生します。このイベントを利用して、ワークシートが切り替わった時自動的に起動するようなマクロは、Worksheetオブジェクトのモジュールに記述しなければなりません。

  • エクセル2000 マクロ

    エクセル2000を使用しています。マクロを使って定型の入力フォームへの入力を素早く、正確に行えるようにしたいと思っています。 「申請書」と「標準事務用品」の2種のシートに分かれており、「申請書」が定型の入力フォーム、「標準事務用品」は入力フォームに反映させたいデータが一覧になっています。 「標準事務用品」のデータの一覧は5つの項目があり、左から1.品物 2.商品名 3.品番 4.メーカー名 5.申請 となっています。 5.申請の列はオプションボタンを1行ごとに1つ設けてあり、オプションボタンがオン(True)の時に、同じ行の1~4の項目のデータを「申請書」シートの入力フォームの任意のセルへコピーしたいです。 何かよいマクロの記述方法はありますでしょうか。

  • EXCELのワークシート名とセルの値の取得に付いて

    EXCEL2000を使用しておりますが、ワークシート名と、そのシート内の複数のセルの値を取得し、別シートにマトリックス表示出来るように 入力フォームを設計したいのですが、固定の名称を予め組み込むのではなくフォーム上で入力したテキストをワークシート名及び、セルの位置として扱えるようにするのには、どのようなマクロを書けばよいでしょうか?例えばシート名A~Fの各シートのA1~F1のセルに10~15の数値が 入っていて、Gのシートでマクロを動かすと、シート名とセルの位置を 入力するフォームが現れ、それぞれ入力すると、指定されたシート名と セルの中の値が、Gシートに、1行ずつ追加されて行く処理をイメージ しています。何卒、宜しくご指導の程、お願いいたします。

  • フォーム マクロ

    フォームをつくり、そのデータを1枚の表に入れていきます 4月1日からはじまり、1年分です フォームで数字を入力し、データ移行のボタンを押すたびにマクロが動き処理します その時 4/1 ? 4/2?.....っと聞いてくれます 始めは良いですが、5月には30回聞かれます・・ 省力するに、記述マクロありますか

  • EXCEL ユーザーフォームを使ったマクロ

    データの登録をするのにユーザーフォームを使おうと思うのですが、なかなかうまくいきません。教えてください。 ユーザーフォームにはコンボボックス、テキストボックス、コマンドボタンが貼り付けてあります。(コンボボックスのリストには呼び出したいシートの名前が入っています) コンボボックスのリストの中から呼び出したいシートを選択し、テキストボックスに入力した内容を、コマンドボタンを押すことで選択されたシート上の、あるセルに登録したいのですがどうすればよいでしょうか?

  • エクセルVBAのマクロ文について

    エクセルVBAで、シート上のボタン(フォーム)をクリックすると、UserForm1が表示されてその中のTextBoxに別のシートのセルに入力したいる値を表示させたくて、以下のようにボタン(フォーム)にマクロを入力したのですが、エラーがでてきてうまくいきません。 入力したマクロが間違っているのでしょうか? Sub ボタン1_Click() UserForm1.Show UserForm1.TextBox1 = Sheets("入力").Ranges("D11").Value End Sub すみませんが、ご存知の方、教えてくださいませんか?

  • マクロ【シート名に対応した文字を挿入・置換】

    マクロ【シート名に対応した文字を挿入・置換】 御世話になります。 【D:\test】内に2つのエクセルファイル(Excel2003)があります。 ※1つ目のファイル名は【季節別表.xls】。 中には一番左端のシート名は【起動シート】で、その横は【spring】【summer】【autumn】【winter】という名前のシートが あり、すべてのシートにはサンプルの表がある。 ※2つ目のファイル名は【データシート.xls】。 中にはシート名【2008】のみが存在。 シート内には下記のような文字を入力している。 セルB2:シート名 セルC2:季節名 セルD2:気候 セルB3:spring セルC3:春 セルD3:暖かい セルB4:summer セルC4:夏 セルD4:熱い セルB5:autumn セルC5:秋 セルD5:涼しい セルB6:winter セルC6:冬 セルD6:寒い B2・C2・D2はシートの列が何の項目であるかがわかるために入力。 B3~6は【季節別表.xls】に存在するシート名を縦に入力。 悩んでいるのは【季節別表.xls】のシート名【起動シート】内にあるマクロボタンに入れるマクロです。 理想の処理の流れですが、 【データシート.xls】のセルB3のspringというシート名が【季節別表.xls】にあればそのシートに セルB3の右隣であるセルC3の文字列【春】を取得し、【季節別表.xls】のシート名【spring】のセルD35の文字列である 【今年の季節名は入学シーズンである。】の【季節名】と置換。 また、セルC3の右隣であるセルD3の文字列【暖かい】を取得し、 【季節別表.xls】のシート名【spring】のセルF70の文字列である【気候は気候状況。】の文字列【気候状況】と置換。 この処理が終わったら、今度は次の行を同じような処理を続け、最終的にはB列が空行になるまで続けられるマクロは 可能でしょうか? 何か簡単なサンプルコードがあれば助かります。 宜しくお願い致します。

  • カッコ付けのオブジェクト名をvbaで認識させる方法はありますか?

    アクセス2003です。 フォーム名を「(あああ)」としてしまったのですが Form_(あああ).Requery をすると 「コンパイルエラー 不正な文字列です」 となります。 Form.Controls("あああ").Requery Forms "(あああ)".Requery もダメだったのですが どうにかしてオブジェクト名を変えずにカッコ付けのオブジェクト名をvbaで認識させる方法はありますか? ご教授よろしくお願い致します。

専門家に質問してみよう