• ベストアンサー

Excel フォームの登録

Excel97でチェックボックスにチェックを入れてもらうと自動的に選択した料金が違うセルに表示できるようにしたいのですが、その場合マクロの登録をすればよいのではないかとおもうのですが、どうすればいいのか教えて下さい。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

>チェックボックスにチェックを入れてもらうと自動的に・・・ とありますが、チェックを入れると自動的に何かを決定できるのはオプションボタンでしょう。 オプションボタンとして書いてみます。 >その場合マクロの登録をすればよいのではないかとおもうのですが・・・ オプションボタンの機能だけを使うならマクロ不要です。 質問について考えると、 (1)表示→ツールバー→フォームのオプションボタン を使う (2)表示→ツールバー→Visual Basicのコントロールツールボックスのオプションボタン を使う (3)ユーザーフォームを使用してオプションボタン を使う の3種類が考えられます。(3)はフォームの表示でコードを書く必要がありますが、(1)、(2)の場合はマクロ不要です。 (1)の場合、例えばオプションボタンを3個使用して      1個目のオプションボタンを選択したらセルF2に『100』を表示      2個目のオプションボタンを選択したらセルF2に『200』を表示      3個目のオプションボタンを選択したらセルF2に『300』を表示 するとします。   オプションボタンを1つ選んで、右クリック→コントロールの書式設定→コントロールタブ   リンクするセルにJ2を入力(J2は例です。選択結果を格納する場所を指定するわけです)   選択状況を表示したいF2に=CHOOSE(J2,100,200,300)と入力します。 (2)の場合、オプションボタンを3個貼り付けます。機能は(1)と同じとします。      1個目のオプションボタンを選択して右クリックしてプロパティを選択。      LinkedCellにJ2を入力。      同様に2つ目のオプションボタンにはLinkedCellにJ3を入力。      同様に3つ目のオプションボタンにはLinkedCellにJ4を入力。      K2に =IF(J2=TRUE,100,0)      K3に =IF(J3=TRUE,200,0)      K4に =IF(J4=TRUE,300,0)      F2に =SUM(K2:K4)  とします。 (3)の場合はフォームの表示のためにコードを書く必要がありますがオプションボタンを選択した時の処理は(2)と同じでしょう。

budouaji
質問者

補足

早速回答していただいてありがとうございます。教えていただいた方法(1)でしてみて確かにこれでできたのですが、1つ質問があります。リンクするセルは1つしか選べないんでしょうか。というのも質問が何問かあり1つの質問に対して1つのリンクというふうにしたいのですができますか?例えば質問1でオプションボタンを5つ使います。質問2で新たにオプションボタンを使用して選択してもらうばあいどのように設定すればいいんでしょう?質問1と質問2はまったく別のものとして考えたいのですがうまくいきませんでした。このような場合(1)ではできないのでしょうか?できるだけ簡単な方法があれば教えて下さい。よろしくお願いします。

その他の回答 (3)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

>グループボックスの外の線は消す事ができないんでしょうか? 基本的にはそのようなオプションはないはずです。でも、見えなくすることはできます。 (1)グループボックスのテキストはテキストの編集で消去してしまう (2)グループボックスより大きいオートシェイブの四角形を描く。 (3)この四角形の書式を、塗りつぶしは自動、線は線なしにする。 (4)この四角形をグループボックスに重ねる。 (5)四角形を右クリックし、順序→最背面へ移動。 (6)グループボックスを右クリックし、順序→最背面へ移動。 下から、グループボックス→四角形→オプションボタンの順に重ねるわけです。 シートの枠線も非表示(ツール→オプション)にしてしまえば違和感もなくなります。 このフォームのグループボックスやオプションボタンを使うと、それが選択(編集)状態になってしまうことがあります。これを回避するには、シートを保護します。ただ、オプションボタンで変更になるセルは保護を解除しておく必要があります。 上記はフォームのオプションボタンを使う場合ですが、コントロールツールボックスのオプションボタンを使えば、プロパティのGroupNameを『質問1』や『質問2』にすれば区分けができ、グループボックスを使う必要はありません。編集状態になることもありません。 フォームのコントロールは古く、使い勝手も悪いので、私は、コントロールツールボックスのコントロールを使うようにしています。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

>質問2で新たにオプションボタンを使用して選択してもらうばあい >どのように設定すればいいんでしょう? 表示→ツールバー→フォームでフォームのダイアログの中にグループボックス(小さいxyzがある)があります。 これをシートに貼り付けて、この中に必要な数のオプションボタンを配置します。 グループボックスの中にあるオプションボタンはそれだけで独立なグループになり、グループボックスの外の他のオプションボタンの干渉を受けません。 したがって、  質問1用のグループボックスを配置    →その中に質問1に必要な数のオプションボタンを配置    →リンクするセルを決定    →表示用の算式を入力  質問2用のグループボックスを配置    →その中に質問2に必要な数のオプションボタンを配置    →リンクするセルを決定    →表示用の算式を入力  質問3用・・・・   :   : という手順でできるでしょう。

budouaji
質問者

補足

ありがとうございます。できました(笑顔)何度も聞いて申し訳ないんですが乗りかかった船だと思って助けてください。グループボックスの外の線は消す事ができないんでしょうか?いろいろこころみたけどだめでした。無理ならしょうがないんですけどなにかいいアドバイスがあれば教えてください。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

表示-ツールバー-VisualBasic-コントロールツールバー(金槌)を順にクリックする。コントロールツールボックスから、 Sheet1にチェックボックスをドラッグアンドドロップ。もう一つSheet1にチェックボックスをドラッグアンドドロップ。次ぎに ツール-マクロ-VisualBasicEditorを順にクリックする。 プロジェクトエクスプローラーのSheet1をダブルクリック General側はCheckBox1をクリック、Declaration側はClickedをクリック ------- Private Sub CheckBox1_Click() ActiveCell = 100 End Sub ------- Private Sub CheckBox2_Click() ActiveCell = 200 End Sub を入力し、実行。 Sheet1の望みのセルをクリックしておいて、CheckBox1をクリックすると100、CheckBox2をクリックすると200とセットできる。 CheckBoxは必要なだけ増やし、ActiveCell=の右辺に値段をセット。

関連するQ&A

  • エクセルのユーザーフォームについて

    エクセルマクロのユーザーフォームのテキストボックスに セルの値を表示する方法で質問です。 ユーザーフォームを表示するとその時点での セルの値はテキストボックスに表示されているのですが ユーザーフォームを表示したまま 別のブックのセルを選んだ際に そのセルの内容がテキストボックスに表示されるようにしたいです。 ボタンや、なにかをするわけではなく 自分で任意のセルを選択したら、という事です。 ユーザーフォームには selectionchange などがないのでどうすれば良いかわかりません。 宜しくお願いします。

  • エクセルのフォームのチェックボックスについて

    エクセルのフォームのチェックボックスについて あるセルにフォームのチェックボックスを付け、 そのセルに、true・falseの条件設定をしました。 その設定を利用して、条件式書式の設定で、 trueの時にとなりのセルを赤にするようにしました。 以上のような行が1500行あります。 1つ1つ設定するのが困難のため、 マクロが使えるフォームのチェックボックスを使用しようと試みております。 しかし、マクロ内のVBAの記述方法が解りません。(1行だけなら解ります) ご存知の方がおられましたら教えてください。 よろしくお願いいたします。

  • エクセルのフォームのチェックボックスについて

    フォームのチェックボックスの書式設定で”リンクするセル”を入れています。 例えば、C10を入れます。次の行にコピーしても自動でC11となってくれません。絶対値は関係ないようです。複数コピーする時に、一々書式設定で変えるのは面倒です。 エクセルは、通常絶対値をつけずにコピーすると、行や列は自動でずれてくれるはずですが、チェックボックスについては違うのでしょうか。 他の方法があるのでしたら、どなたかお教えください。 よろしくお願いします。 できれば、マクロはつかわず簡単な方法がいいのですが・・・

  • フォームのチェックボックスの利用

    エクセルです。 フォームのチェックボックスを設置し、そこにチェックをいれた ときのみ、隣のセルに 赤字で AAA と表示されるようにしたい のですが、マクロをどのように設定したらよいか教えてください。 どうかよろしくお願いします。

  • エクセルのフォームで

    かなり初心者です。 今エクセルのフォームでリストボックスを使っているのですが、リストに例えばあ、い、う、え、おと5つリストがあるとすると、リンクするセルに、あ、い、う、え、おと表示されずに、1,2,3,4,5とでてしまいます。 他のチェックボックスなども同様です。 何が原因なのかわからないので、ご回答よろしくお願いします!!

  • エクセル マクロ フォームのチェックボックス

    エクセルのフォームのチェックボックスで【On】にした際に 「コントロールの書式設定」にある「リンクするセル」のロックをしたいのですが マクロで実現する際、どのようなにできるのでしょうか? また、フォームのチェックボックスで【Off】にした際に、「リンクするセル」のロックの解除のしたいです。 初心者で下記を記述しましたが、チェックボックスが多いため、すべてのチェックボックスに登録するのが時間がかかるのあで、教授お願いします。 Cells.Locked = False ActiveSheet.Protect userinterfaceonly:=True ActiveSheet.Range("AY29").Locked = True

  • エクセル チェックボックス

    エクセルで複数の特定セルのどれかにOKの文字が入力されると、 チェックボックスに自動でチェックが入るようにできますか? (A1のセルかB1のセルかC1のセルにOKが表示されると チェックボックスにチェックが自動で入る。) よろしくお願いいたします。

  • エクセルのユーザーフォームについて

    エクセルのユーザーフォーム上で テキストボックスなどはフォーカス移動すると 入力バーが出ますがチェックボックスに来ると選択されているのがわかりません ちなみにチェックボックスはチェックのみ表示(レ点部分)文字はラベルで表示(上に表示させたかったので) 選択されているかどうか網点?など解るようにするにはどうすればいいのでしょうか?ご教授お願い致します。。

  • EXCEL97でも動くようにするには?

    EXCEL2000を使用して Private Sub Worksheet_Change(ByVal Target As Range) を使用してセルの値が変更されたら動くマクロを作成しました。 セルには直接値を入力するものではなく、 セレクトボックスの中からひとつを選択するようになっています。 セレクトボックスから一つを選択するとマクロが動きます。 2000では、特に問題なく動いています。 これをEXCEL97で試してみると セレクトボックスから一つを選んだだけでは、 マクロが動きません。 たぶん、EXCEL97では セレクトボックスから選らんだ場合を、 Worksheet_Changeとは見なしていないのではないかと思うのですが、 どうすれば、EXCEL97でも マクロが実行されるようになるのでしょうか? (当然、セレクトボックスから選ぶだけですので、  onKey"enter" も使用できません。)

  • エクセル2010でチェックボックスについて

    エクセル2010でチェックボックスで □赤 □青 □黄 と3つの選択肢を作って、チェックを入れたところの文字を特定のセルに表示させたいのですが 分からないので教えて頂きたいと思います。 例えばE4に表示させたい時、一旦コントロールから(例えば)E5セルにリンクさせてE4に=IF(E5,"赤","")ってところまでは分かるのですが・・・この場合赤だけしか表示されなく、青を選択した場合に青と表示させたりしたいのです。。 よろしくお願いします!!

専門家に質問してみよう