- ベストアンサー
フォームに引数を渡す方法のやり方
はじめまして ---------------------------- 配列Aにシート名を全て格納 ↓ フォームに引数を渡す ↓ UserForm_Initialize にて コンボボックスに引数を羅列させる ---------------------------- というようなマクロを作成しようと思っているのですが、フォームに引数を渡す方法がわからず困っています どなたかご教授をお願いします よろしくお願いします
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
関連するQ&A
- VBA のフォームでTxtボックスとコンボボックス
エクセル2013で、やっとのことでマクロのフォーム(txt入力のみを5項目)を完成させることができました。 次に、そのうちの一つは曜日の入力なのでこれをコンボボックスにして、一覧を出してマウスで選択するように変更したいのですがどうもうまくいきません。マクロは初めてなので基本的な考え方ができていないのです。 そこで質問なのですが、参考書には Private Sub UserForm_Initialize End Sub にマクロを記入するとなっていますが、これをもとの曜日入力ボックスと置き換えることはできないのでしょうか。それとも、終了ボタンのマクロと同じように、別のプロシージャにしないといけないのでしょうか。 それから、これはあまり重要ではないかもしれませんが、私がコンボボックスを作成するとマクロに Combbox_Changed のようなプロパティ(?)が表示されて、ヘルプを見てもよくわかりません。これはどういうことなのでしょうか。 よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- 教えてください。
vba初心者です。 エクセルのマクロです。 userformをでコンボボックスとテキストボックスを作りました。 userformを起動させ、コンボボックスで1~20のどれかを選択し、 テキストボックスに何か記入し、完了をおすと、コンボボックスで選択したシートにテキストボックスの内容を記録させたいのです。 コンボボックスには1~20までの数字を登録します。 その1~4を選択したときはシート1 5~10はシート2 6~15はシート3 15~20はシート4 と振り分けられるようにしたいのです。 現在の状況は。 userform作成 テキストボックス作成 コンボボックス作成 完了のコマンドボタン作成 完了を押すとテキストボックスが記録される ここまできています。 あとはコンボボックスの使い方がわかりません。 わかりにくい説明ではあったとは思いますが、どなたかご教授お願い致します。 よろしくお願い致します。
- 締切済み
- Visual Basic
- エクセルVBAのユーザーフォームのコンボボックス
エクセルVBAのユーザーフォームのコンボボックスの入力と ファイルの保存で質問です。 エクセルVBAで ユーザーフォームのコンボボックスを使用して 1月から12月までを選択してもらい、 選択した月を コマンドボタン押した際に、 セルにその値を入力するような マクロを作成しようとしています。 またコンボボックスは標準で6月が表示されるようにしたいと思います。 ユーザーフォームのコードの一部です。 Private Sub UserForm_Initialize() Dim m As Integer For m = 1 To 12 UserForm1.ComboBox1.AddItem m Next ComboBox1.ListIndex = 6 Private Sub CommandButton1_Click() 'ユーザーフォームを閉じる Unload UserForm1 mold '↑フォームを閉じた後に実行される標準モジュールのマクロ名です End Sub 標準モジュールのコード 名称 「mold」 Sub mold() ActiveWorkbook.SaveAs _ Filename:="C:\_" & UserForm1.ComboBox1.Text & "月", _ FileFormat:=xlOpenXMLWorkbook ActiveWorkbook.Close ThisWorkbook.Activate ' End Sub の様に作成して実行してみたのですが、 コンボボックスで11月を選択しても 6月のままのファイルになってしまいます。 どのようにしたら、 コンボボックスで選択した値を ファイル名として保存できるでしょうか? 全部のコードを記載しますと 長くなってしまうと思い、 関連するコードを記載して質問しました。 分かりづらい所もあるかと思いますが よろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
- VBA 引数にcombobox,Range
おはようございます。 質問内容が明確?で無い点が多いかもしれませんが、 質問させていただきます。 まず、Excel2003を使い、フォーム上にはコンボボックスを置いています。 プロシージャ?の中の引数?として コンボボックスの名前を使いたいと思っています。 Private Sub UserForm_Initialize() Call TEST(Combobox1,"A1") End sub Sub TEST(Byval ComboboxName,Byval TEST_Range) ComboboxName.AddItem "A" TEST_Range="テスト" End Sub 適当に作成してみましたが… TESTを実行したら、 引数にあるコンボボックスに”A"という値を追加し、 TEST_Rangeに"テスト"と入力したいです。 引数として宣言する際、Stringは違うと思うのですが、 どうやって宣言?すれば良いのでしょうか。 上記例では、TESTを実行したら Combobox1に"A"という値が追加され、 A1に"テスト"と入力されるようになっています(それを目的とします) 分からない点がありましたら、どんどん聞いてください。 よろしくお願いします!
- ベストアンサー
- Excel(エクセル)
- Excel コンボボックス2つ以上の時のコード
ユーザーフォームでコンボボックスを2つ作ったのですが、1つだけのときはうまくいったのですが、二つ目をつくったら、エラーが出てしまいました。 コード入力は、Initializeに入力してあります。 Private Sub UserForm_Initialize() ComboBox1.Style = fmStyleDropDownCombo ComboBox1.RowSource = "sheet1!F2:F7" ComboBox1.ListIndex = -1 End Sub Private Sub UserForm_Initialize() ComboBox2.Style = fmStyleDropDownCombo ComboBox2.RowSource = "sheet2!B2:B3" ComboBox2.ListIndex = -1 End Sub コンボボックス1だけはうまくいったのですが、コンボボックス2をつくったら名前が適切でありませんとエラーがでました。 どのようにしたらいいですか?教えてください。
- ベストアンサー
- オフィス系ソフト
- Excel:「フォーム」のボタンで引数を渡すプロシージャは呼べないですか?
Win2K、Excel97-2000-2002を使用しています。 Book1.xlsに固定文字列のメッセージボックスを表示するプロシージャ "A" を作成しました。 Book2.xlsのSheet1上に「フォーム」コントロールボックスのボタンを貼り付けました。 マクロの登録でBook1.xls!Aを指定しました。 ボタンを押下すると、固定長文字列のメッセージボックスが表示されます。 このプロシージャ "A" に引数を持たせ、 任意のセルの値を渡したいと思っているのですが、 「フォーム」コントロールのボタンでは、引数を渡すことは不可なのでしょうか。 御教授、御鞭撻の程、何卒宜しくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- Excelマクロのコンボボックスについて
初めてマクロを扱います。 マクロに詳しい方、コードをご教授ください。 Excelマクロを使い下記の機能をシートに盛り込みたいと考えております。 【実現したいこと】 ・シート上にコンボボックスを作成し、コンボボックスで選択した項目で絞り込めるようにする。 ・コンボボックスに格納される項目は、A列の重複を除外し、昇順で並べ替えたもの。 ・またコンボボックスに格納する項目は日々レコード追加されるため、コンボボックスの中身にも随時反映するようにしたい。 ・コンボボックスには「全て表示」というアイテムを追加し、「全て表示」を選択すると、フィルターが解除される。 わかりにくいかもしれませんが上記のことを実現したいと考えております。 どうかお知恵をお貸しください!! よろしくお願いします!!
- 締切済み
- その他MS Office製品
- コンボボックスで名前を指定後、新規シート名に使用する方法
お世話になります。 UserFormでコンボボックスを作成しました。 そこでリストを選択した後、 新規シートを作成するマクロまではできたのですが、 その新規シートにリストで選択した名前を入力させるには、 どのようなマクロを組めばよいのでしょうか?
- ベストアンサー
- Visual Basic
- Excel vbaでフォームの起動が失敗する
Excelシート上に設置したユーザフォームを開くボタンを実行するとフォームが開かずに新規のExcelシートが開いてしまいます。 以前までは正常に作動していたんですが••• ちなみにボタンの実行前に vbaの編集画面を一度でも開いた後はボタンを押したら正常にフォームが開くんです。 フォームを開くコード sub 起動() UserForm1.Show End Sub フォームのInitializeはコンボボックスのみです。 原因がわかりましでしょうか?
- 締切済み
- Visual Basic
- エクセルVBA コンボボックス
今データ入力用のフォームmainがあります。 そこで複数のデータを入力していくのですが、そこでわからなくなりました。 入力用コンボボックスがひとつだけのときは Private Sub userform_Initialize() Dim 配列(2) 配列(0) = "データ1" 配列(1) = "データ2" 配列(2) = "データ3" 入力用コンボ.List = 配列 End Sub Private Sub 入力用コンボ_Change() MsgBox 入力用コンボ.ListIndex End Sub としていたのですが、複数になった場合の理屈を含めわかりません。 一つの入力用フォームにコンボボックスが複数あった場合はどうすればよいのですか?
- ベストアンサー
- Visual Basic
お礼
この方法では、フォームを開くと同時に コンボボックス内にアイテムが表示されないので 解決にはつながらなさそうです 回答ありがとうございました