• ベストアンサー

【Excel】フォームを使ったマクロ記述について

教えて下さい! マクロ初心者ですが、ユーザーフォームを使って以下のような対話型マクロに挑戦しています。 ワークシート内にあるフォームボタンをクリックすると下の内容を聞いてくるチェックボックスが出てきます。 「比較方法を選択して下さい。」  ・担当者別  ・箇所別 ”担当者別”にチェックを入れ、OKボタンを押すと”担当者選択”というリストボックスが出てきます。 ”箇所別”にチェックを入れ、OKボタンを押すと”箇所選択”というリストボックスが出てきます。 どちらにもチェックを入れずにOKボタンを押した場合、”エラー”というOKボタンのみのフォームが出て、OKボタンを押すと再度チェックボックスの画面に戻ります。 リストボックスやフォームは完成していて、いくつか「IF」や「Select Case」を使って行ってみたのですがうまくいきません。 困っています。 教えて下さい!!

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

  • ベストアンサー
  • taocat
  • ベストアンサー率61% (191/310)
回答No.3

こんにちは。 End if のエラーですが、IFとEnd IFはペアでないといけませんので、IfとEndIfの数を数えれば分りますね。 で、提示のコードと同じことをやるサンプルをちょとアップしておきます。 -------------------------------------------- チェックボックスを使った場合 -------------------------------------------- Private Sub CommandButton1_Click()  If CheckBox1 = False And CheckBox2 = False Then    エラー.Show  ElseIf CheckBox1 = False And CheckBox2 = True Then    対応箇所.Show  ElseIf CheckBox1 = True And CheckBox2 = False Then    担当者選択.Show  Else    MsgBox "両方選択されています"  End If End Sub ----------------------------------------------- オプションボタンを使った場合 ---------------------------------- Private Sub CommandButton1_Click()  If OptionButton1 = True Then    担当者選択.Show  ElseIf OptionButton2 = True Then    対応箇所.Show  Else    エラー.Show  End If End Sub -------------------------------------------- これでお分かりのように、チェックボックスの場合は、両方とも選択可能ですので、そのチェックも要りますね。 どちらか一方を選択可能にする場合は、既に回答にありますように、オプションボタンを使います。 以上です。

froma_a
質問者

お礼

なるほど!こんなに簡単に出来ちゃうんですね。 大変勉強になりました◎ 本当にありがとうございます。

その他の回答 (2)

回答No.2

回答ではないのですが、アドバイスです。 そのチェックボックスをオプションボタンにしてみてはいかがでしょうか? チェック漏れがなくなります。 あと、どこら辺がうまくいってないのかを教えていただければ 何らかの回答ができるかもしれません。

froma_a
質問者

補足

オプションボタンですか…なるほど。 ちなみに本当に初心者で学習しながら作成している状態なのでうまくご説明出来なくて本当すいません。 以下のような記述で行ってみたのですが。 Private Sub CommandButton1_Click() If CheckBox1 = False Then '両方空欄だったらエラーを表示させる If CheckBox2 = False Then Else エラー.Show End If If CheckBox1 = False Then If CheckBox2 = True Then '箇所別が選択されていたら対応箇所を表示させる Else 対応箇所.Show End If If CheckBox1 = True Then '担当者別が選択されていたら担当者選択を表示させる If CheckBox2 = False Then Else 担当者選択.Show End If End If End Sub 「Ifブロックに対応するEndIfがありません」と表示されてしまいます。 これってどこのEndIfが必要なんでしょう?

回答No.1

回答ではないのですが、アドバイスです。 そのチェックボックスをラジオボタンにしてみてはいかがでしょうか? チェック漏れがなくなります。 あと、どこら辺がうまくいってないのかを教えていただければ 何らかの回答ができるかもしれません。

関連するQ&A

  • マクロ フォームでのチェックボックスについて

    教えてください。 1)フォームでテキストボックス2つ、ボタンで新しい入力フォーム表示 2)入力フォームでチェックボックス6個、コンボボックス6個を作ります。 3)チェックボックスにチェック(1個のみ)したら、1)のフォームのテキストボックスにチェックされた、項目とコンボボックスで選択された内容が転記したい。 例)果物にチェック、コンボでブドウと選択  テキストボックス→果物 ブドウ というようにフォームに転記させたい。 以前、シートでのマクロを教えていただきましたが、フォームだと頭が混乱してしまいました。 簡単で良いので、マクロの記述を教えてください。

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

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

  • 【Excel】リストボックスからのグラフ表示方法

    教えてください! 今、フォームで表示されたリストボックスから一つ項目を選択しOKボタン(CommandButton1)を押すと、すでに別のワークシートに作成されたグラフが今開いているシートにユーザーフォームで表示されるというファイルを作成しています。 グラフがユーザーフォーム内に表示されるというのは出来たのですが、項目数が7つあるリストボックスからそれぞれ選択すると、 AAA→グラフ1 BBB→グラフ2 CCC→グラフ3 DDD→グラフ4  ・  ・  ・ という風に「リストボックスのこの文字を選択しOKボタンを押すと、このグラフが表示されるようにする」といったようなマクロを完成させたいのです。 ちなみにグラフが表示されるようにするのに、以下のような記述をしました。 ------------------------------------------------- Worksheets("グラフ1").ChartObjects(1).Chart.Export ThisWorkbook.Path & "\Chart1.gif" UserForm1.Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Chart1.gif") UserForm1.StartUpPosition = 1 UserForm1.Show ------------------------------------------------- 困っています。 教えてください。宜しくお願いいたします。

  • フォームへの未入力を無くしたい

    [やりたいこと(宜しくおねがいします)] フォームの未入力「コンボボックス」と「テキストボックス」を事前に把握したい。 [(やりたいこと)の実現と希望] このサイトでアドバイスを頂きまして、長年に渡り作成できたデータベースが「68」、入力するフォームは「78」を超えます。現状「フォーム」の構成を生かす方法を含めアドバイスをお願いします。 [入力するフォームに共通していること] 1,コンボボックスとテキストボックス  ・全てのコンボボックスへの選択入力は必須になっている。  ・テキストボックスは未入力箇所も発生する。「未入力箇所は不特定」 2,フォームに共通して配している2つのコマンドボタン  ・フォームを閉じるボタン「マクロ(クリック時)」  ・情報の最新化ボタン「マクロ(クリック時)」   ※コンボボックスの選択項目追加時に反映用として配置 以上ですが、宜しくお願いします。

  • エクセル マクロ 時間

    1)フォームにて時間を表示する。コンボボックス2つ作る。コマンドボタン(記録)を1つ作る。 2)1つのコンボボックスには時を選択させる。リストはリストはSheet2に01・02・03・・・とA列に00まで作る。 3)もう1つのコンボボックスには分を選択させる。リストはSheet2に01・02・03・・・とB列に00まで作る。 4)フォームの記録ボタンを押すと、sheet1のA2に(例 23:34)と表示させたい。 マクロの記述を教えてください。

  • エクセルのマクロの事で教えていただきたいのですが・・・

    マクロ初心者&質問をするのも初めてなんですが・・・ 今、会社でマクロを使って、エクセルの見積もりや納品書を作るように言われているのですが・・・ 共有ファイル内にある印鑑(GIF画像)を選択して取り込めるように・・・と言われています。 試してみた方法としては、マクロを実行すると、リストボックスの中から選択してOKのコマンドボタンをクリックすると、選択した印鑑がセルの上に表示されるようにする。や、ユーザーフォームの中にコマンドボックスを必要な人数分作りその一つ一つに、指定した画像が張り付くようにしたつもりなんですが、記述に間違いがあるのか?うまく行かずに困っています>< リストボックスや、ユーザーフォームを使わずに、一つの設定だけだと成功するのですが・・・ 何か、初心者にもできて簡単な方法があれば教えていただけると幸いです。

  • フォームを作成しています。

    フォームを作成しています。 チェックボックスとドロップダウンリストを連動したいと思います。チェックボックスが選択されればその内容を送信できるけれど、チェックボックスがチェックされていないとドロップダウンリストは選択できないようにしたいと思います。10位のチェックボックスとドロップダウンリストの組み合わせを作りたいと思います。 どのようなコードを使えばいいでしょうか?CGIを使ってフォームを作成中です。 よろしくお願いします。

  • EXCEL:フォームで作成したチェックボックス選択したのものみ表示

    EXCELのフォームのチェックボックスやグループ化したオプションボタンを多数使用したシートがあります。 チェックや選択したオプションボタンに応じて結果が同じシートに表示されるようIF関数を使用してます。 例)チェックボックス(1)「植物」にチェックがあり   グループ(1)はオプションボタン「赤」を選択   グループ(2)はオプションボタン「水」を選択   →『花』と表示   グループ(2)のオプションボタン「緑」を選択した場合は   →『木』と表示 選択した項目をペーパーで確認のために、選択した項目だけ別のシートに表示させ印刷したいのですが何か良い方法はないでしょうか。 チェックボックス一つに対してグループ約5つ というものが10個ほどあります。 チェックボックス(1)をチェックしたら、チェックボックス(1)とグループ(1)~(5)を別シートへ表示するといったようにしたいのですが・・・

  • マクロを教えてください

    もしお分かりの方がいらっしゃったら教えてください。 ラジオボタンとチェックボックスを使ってツールを作ってます。 ラジオボタン1、2があって、ラジオボタン1を選択するとチェックボックスABCのうち、ABが自動でチェックが入り、ラジオボタン2を選択するとチェックボックスBCに自動でチェックが入るようにマクロを組みたい のですが、どなたかご教授いただけないでしょうか?

  • 2007 EXCEL マクロの使い方について

    EXCEL 2000/2002/2003対応の本を見ながらマクロを使った「介護日誌」を2007で作成していますが、2007年以前のバージョンだと[表示]ー[ツールバー]ー[フォーム]メニュを選択すると、[フォーム]ツールバーが表示されるはずなのですが、2007にはそういった[フォーム]ツールバーがなく、ボタンを作成できないのですが、どうすればいいのでしょうか? マクロの記録、終了ボタンはわかるのですが、よくわかりません。 基本的なことで恐縮ですが、よろしくお願いいたします。

専門家に質問してみよう