• ベストアンサー

Excel VBAでのMultipageの選択

TAGOSAKU7の回答

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

再び田吾作7です。 締め切ってない所を見ると、見てないのか、あるいは「ページのインデックス値 」がわからなかったのかな? 一応参考までに、、、 1番目のタブを指定 MultiPage1.Value=0 2番目のタブを指定 MultiPage1.Value=1 3番目のタブを指定 MultiPage1.Value=2 ってな感じです。 詳しく言うと、各ページはページというオブジェクトで、マルチページとはそのページオブジェクトをコレクション化した(束ねた)ものです。 MultiPage1.Pages(1) とするとページの中を操作しますが、今回したい作業は「どのページをアクティブにするか」ということなので、「このコレクションに対して、どれをアクティブにするか」という命令になります。よってMultiPage1の中のページオブジェクトを操作するのではなく、MultiPage1自身を操作することになります。 それにしても、Valueでページを変更するってのはチョット違和感がありますよね。Microsoftさんの思惑が時々わからなくなるのは僕だけでしょうか? ( ̄ロ ̄lll) あっ 愚痴ってしまった。。。 でわでわ

mygsk
質問者

お礼

遅くなりましたが、回答ありがとうございました。 No1の回答で十分なところを、さらに詳しく解説していただき 恐縮しております。問題は無事に解決しました。 それにしても、Valueでページを変更するってのはチョット違和感がありますよね。Microsoftさんの思惑が時々わからなくなるのは僕だけでしょうか? 私も以下の様なコードを書いてしまい、エラーが起きました。 Userform1.MultiPage1.Page1.ActivateとかSelect Userform1.MultiPage1.Pages(1).Activate まさか、MultiPage本体のValueで設定するとは思いもつきませんでした。 ついでに、もう一つ教えていただきたいのですが、Multipage1上に配置した Checkbox(例えば100個、Checkbox1-100)のvalueがTrueかFalseかを 効率よくチェックしたり、設定するにはどの様なコードが最適でしょうか? 例えば、 For i = 1 to 100 If cells(i, 1).value = 1 then Checkbox(i).value=True Else Checkbox(i).value=false End if Next i と言った感じです。

関連するQ&A

  • エクセルVBA UserFormで選択リスト

    VBAは多少はかじりましたが、UserFormを使うのは初めてです。これまではDialogSheetでやってました。 しかし今回は、DialogSheetでは大分類小分類に分けたリストはできそうもないのでUserFormならマルチページ機能があるのでなんとかなるのではと思いました。 やりたいことは約千種類あるデータを、まず大分類のカテゴリーに10区分し、マルチページとします。 大分類の各ページをさらにマルチページで小区分し、各5区分とします。都合10*5で50ページとなります。 小区分の各ページにそれぞれリストボックスを配置し、エクセルシートのデータリストからデータを表示し、エクセル使用者が選択できるようにします。 こんなことはマルチページで可能でしょうか?それともタブストリップですか? 参考となるコードなどもご教示いただけると幸いです。 よろしくお願いします。

  • Excel VBA のマルチページ

    使用環境:Excel2007 VBAのユーザーフォームにMultiPageを配置し各ページにScrollbarを 設定(Vertical)したいと思っています。 各ページに配置まではできましたが、実行しても動かず困っています。 写真やコマンドボタンを多く配置するので、マルチページで対応できたら と考えています。 ヒントとなるコードまたはURLが解れば教えて頂きたいです。 よろしくお願いします。

  • エクセル2003 ユーザーフォーム、マルチページのページ選択の記述

    いつもこちらで勉強させていただいております。 エクセルVBAでユーザーフォームを作成しました。 フォームにはマルチページが有り、ページ数は3枚あります。 で、質問なのですが、フォームを読み込んだときに ページを必ず1ページを表示するようにしたいのですが コードの書き方が判りません。 フォーム作成でページ1を選択しておけば、1ページ目が 表に来るのですが、コードで処理しておけないかなと 思いましてご質問させていただきました。 フォームオブジェクト名:UesrForm1 ページオブジェクト名:Page1 となっております

  • Access VBAでタブコントロールで選択するタブをしていするには。

    Access VBAでタブコントロールで選択するタブをしていするには。 Access のフォーム上に,「ページ1」「ページ2」「ページ3」タブを配置しました。その横にボタンを3個配置して,ボタンクリックでそれぞれ対応するタブを選択(クリックしたのと同じ状態に)させたいのですが,どなたか方法を知りませんか? よろしくお願いいたします。

  • エクセルVBAでマルチページの切り替え方法の件で

    エクセルVBAを使用して フォームを作成しているのですが マルチページを利用してpage1上にコマンドボタンを 配置しそのボタンをクリックすることでpage2に切り替わる 仕組みを作りたいと思っているのですが なかなかうまくいきません Private Sub CommandButton102_Click() userform1.page2.Show End Sub ↑のように考えてはみたのですが エクセルに間違ってるといわれてしまいました ご存知の方がいらっしゃいましたらよろしくお願いします

  • EXCEL VBA のユーザーフォームで絞り込み

    ここで質問が出来るほどの実力はないのですが・・・。 EXCELのユーザーフォームにコンボボックスを2つ配置しておいて、ComboBox1では都道府県名を選択できるようにしておき、県名を選択したらComboBox2にその県の市町村名が絞り込まれて選択できるようにしたいと考えています。 エクセルにどのような並びでデータをセットしてどのようなコードを書けば実現できるのかをご教授して頂けないでしょうか? まるまる「おんぶにだっこ」的な質問内容ですがよろしくお願いします。

  • エクセルVBAユーザーフォーム・ボタンの復元

    うっかりして、エクセル Visual Basic Editor ・ユーザーフォームの、ツールボックス のコントロールから、[マルチページ]のボタンを削除してしまいました。 何気なく[マルチページ]ボタンを右クリックし、”削除 マルチページ” をクリック してしまったのです。 どの様な方法で[マルチページ]ボタンを復元することができるか、お教え願えれば ありがたいのですが。  どうか、よろしくお願い致します。

  • VBAでマルチページの表示

    エクセル2002使用です。 ユーザーフォーム(オブジェクト名:UserForm1)に、マルチページ(オブジェクト名:page1)を配置してフォームを作成しました。 Sheet1にコマンドボタンを貼り付け、コマンドボタンをクリックして、標準モジュールを呼び出し、マルチページを標準モジュールから呼び出せるようにしたいのですがうまくいきません。 ’Sheet1 Private Sub CommandButton1_Click() Call フォーム表示 End Sub ’標準モジュール Sub フォーム表示() UserForm1.Show ’?ここのコードをいろいろ試したのですがわかりません。 End Sub この他 UserForm1.ShowPages "page1" とか 変数を入れてみたりしたのですが、うまくいきません。 すいませんが、よろしくお願いします。

  • Excel VBA

    Excelのコンボボックスについての質問です。 sheet(1)のA2~A20までコンボボックスに入る選択肢が入っています。 フォーム1のコンボボックス1にその選択肢を入れたいのですが、なるべく短いコードを教えていただきたいのですが…。 ちなみに私の知っているコードは コンボボックス1.Additem Range("シート1!A2") コンボボックス1.Additem Range("シート1!A3")      ・      ・      ・ という感じです。 どうかよろしくお願いいたします。

  • Excel VBAでのコードの書き分け方

    Excel VBAについてご質問します。 プロジェクトの項目を見ると、 Sheet1 ThisWorkbook 標準モジュール などさまざまあると思います。 これらに対して、どこにコードを書いていくべきなのかがわかりません。 例えば、Sheet1にボタンを配置して、それがクリックされたときの動作についてはSheet1に書けばいいのだと思います。 ですが、いろんなシートのコード、フォームのコードなどから呼び出される関数はThisWorkbookか標準モジュールのどちらに書けばいいのか悩んでいます。 それ以外のケースも含めて、一般的にこういう風に使い分けをするというのがありましたら、ぜひ教えてください。 よろしくお願いいたします。