• 締切済み

エクセルのオプションボタンについて

エクセルVBAの初心者です。 ブックAのSheet1にコントロールツールボックスよりオプションボタンを使って、OptionButton1にA室、OptionButton2にB室、OptionButton3にC室という名前をつけて作成しました。この3つのオプションボタンの内いずれかを選択した時に、別のブックBのSheet1のセルA1に転記したいのですが、VBAを使って転記をすることはできるでしょうか? 分かりにくい説明で申し訳ありませんが、宜しくお願い致します。

みんなの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

A No.1です。 イベントプロシージャに書かなくても動作します。ただその場合は、OptionButton1.value=TRUEなら、転記するといった処理が必要になりますので、念のためお知らせします。 できるかな?これでもいけるかな?と思ったら、まず手を動かしてみるのが上達の早道だと思います。

activepapa
質問者

お礼

親切に教えていただきありがとうございました。いろいろ試してみようと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

A No.1です。 Private Sub OptionButton1_Click() With Workbooks("BookB.xls").Sheets("Sheet1") .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Value = OptionButton1.Caption End With End Sub でいかがでしょうか。

activepapa
質問者

補足

ご回答ありがとうございます。上記の記述大変参考になりました。ただ、今ひとつ解決できないことがあります。今、ブックAの中に登録ボタンがあり、そのボタンを押すとブックBに転記するようになっています。上記の記述は、登録ボタンを押した時のマクロ内(Sub 登録())内に記述してもいいのでしょうか?初歩的な質問ですいません。Private SubとSubの使い方を今いち理解していないのがいけないと思うのですが、まったく別ものと思っていいのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

オプションボタン上の右クリックメニューから、「コードの表示」を実行すると、VBEで下記コードが表示されます。これが、オプションボタンをクリックしたときのイベントプロシージャとなりますので、この中に行いたい処理を記述します。 Private Sub OptionButton1_Click() End Sub 3個程度なら、OptionButton1~3 それぞれについて記述して下さい。 でもって、何を転記したいのでしょうか。 Workbooks("BookB.xls").Sheets("Sheet1").Range("a1").Value = OptionButton1.Value で良いのですか?

activepapa
質問者

補足

ご回答ありがとうございます。説明不足で申し訳ありません。 やりたいことは、ブックAにデータ入力用のシート(フォームをシートで表現した感じ)を作成し、登録ボタンを押すとブックBの各項目列にブックAで入力されたデータを転記し、転記されたらブックAのデータシートはクリアされ、次のデータ入力を待つような感じにしたいのです。その項目の中に今回質問させていただいた、オプションボタンで選択できるような箇所を作りました。普通のセルに入力したものは転記できたのですが、オプションボタンで選んだものを転記することができませんでした。特に転記するとTRUEとかの表示でCaptionの値ではないものが転記されてしまうので悩んでいます。あとは、データをどんどん入力していくので、その都度オプションボタンで選択したもは、1件目のデータの時はA1、2件目のデータはA2というように、どんどん下に転記していくようにできればと思っています。勝手言って申し訳ありませんが宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCELのオプションボタンの使い方

    EXCELのコントロールツールボックス内でのオプションボタンの使い方について質問があります。 例えば、A,B,Cをどれかひとつだけ選択できるオプションボタンを作成します。 その後、Aを選択したときのみ、アクティブになる(または選択できるようになる)オプションボタンを作成することはできるのでしょうか? オプションボタンに上位、下位を設定したいのです。 なお、上位がオプションボタンでなくてもかまいません。 チェックボックスでAを選択した場合のみ、オプションボタンを選択できるようになるとか・・・。 どなたか教えてください。 よろしくお願いします。

  • 【エクセル】オプションボタンにセルの値を反映させるには

    エクセルマクロ初心者です。教えてください。 シート2 の あるセルの値が A のとき シート1上の オプションボタン1がtrueになる。 シート2 の あるセルの値が A以外のとき シート1上の オプションボタン1がfalseになる。 (オプションボタン1はフォームコントロールのオプションボタンです。) という結果になるマクロの登録方法を模索していますがうまくいきません。 実際には、シート1は入力シートで、ボタンクリックで別の蓄積シートに転記(オプションボタンのほかコンボボックスなどの内容を転記します)。シート1上のリストボックスに蓄積シートの内容を表示し、選択するとその内容を呼び出すようにしたいのです。 コンボボックスやテキストボックスに呼び出すところまではなんとか本を見たりしてできたのですが、オプションボタンに呼び出せません。 なんとかお知恵をお借りしたいです。 よろしくおねがいします。 *下記のようにやってみました。 Private Sub commandbutton3_click() Dim n As Integer n = ListBox1.ListIndex If n = -1 Then MsgBox "選択してください" Else ComboBox2.Value = ListBox1.List(n, 0) ComboBox3.Value = ListBox1.List(n, 3) ComboBox4.Value = ListBox1.List(n, 4) ComboBox5.Value = ListBox1.List(n, 8) ComboBox6.Value = ListBox1.List(n, 9) ComboBox7.Value = ListBox1.List(n, 1) ComboBox8.Value = ListBox1.List(n, 2) TextBox3.Value = ListBox1.List(n, 10) End if ***********ここからがうまくいきません******** If Worksheets("入力シート").ListBox1.List(n, 6).Value = "A" Then OptionButton1.Value = True Else OptionButton("A").Value = False End If End Sub

  • エクセルマクロのオプションボタンについて

     エクセルの1つのシート内で「オプションボタン」を6つ使用し、3択する 場所を2箇所作ろうとしたところ、6択が1箇所となってしまい困っています。 オプションボタン3つずつを独立させ、2組にするにはどのようにすればよいのでしょうか?  また「ツールバー」にある「フォーム」と「コントロールツールボックス」から 「オプションボタン」や「チェックボックス」を作成すると、それぞれどのような 違いがあるのでしょうか?  ちなみに私はコントロールボックスからオプションボタンを作成しています。  詳しい方、教えて頂けないでしょうか?よろしくお願いします。

  • EXCELのオプションボタンの使い方

    EXCELでアンケート用紙を作成しています。 択一式の設問にコントロールツールボックスの オプションボタンを使おうと考えています。 設問を複数作りたいのですが それぞれの設問に対しオプションボタンを 割り当てることができません。 つまり、sheet内のすべてオプションボタンのうち 1つしかチェックできません。 やりたいことは、 オプションボタンのグルーピングをして そのうち1つしか選べない様にして 他も同じようにグループ内でのみ択一に するようにしたいのですが どうしたらよいのでしょうか。 宜しく御願いします。

  • Excelのシートを保護してオプションボタンの選択のみ可能にしたい

    Windows2000、Excel2002使用です。 オプションボタンを使用し、Excelでアンケートを作成しました。 (メニュー>ツールバー>コントロールツールボックスを呼び出して、オプションボタンを作成しています。) シートを保護して、オプションボタンの選択と一部のセルへの記入のみできるようにしたいです。 ・編集したいセルのロックを解除 ・オプションボタンを選択し、右クリック>コントロールの書式設定>ロックを解除 ・オプションボタンが置いてあるセルのロックを解除 をおこない、「ロックされていないセルの選択」のみ許可してシートに保護をかけました。 セルに記入はできるのですが、オプションボタンの選択をしようとするとエラーメッセージが出てしまいます。 調べても出てこないので教えてください。お願いします。

  • EXCELのオプションボタン

    ワークシートの各行に質問を書き、右端にオプションボタン(コントロールツールボックスではなくフォームのオプションボタンです)を貼り付けました。 質問項目によりはい・いいえの2択か、その他まである3択になります。 ところが行の高さがたりないせいか、オプションボタンを一番小さくして各行のボタンは、それぞれグループボックスで囲ったのですが、互いに影響しあってうまく働かないのです。 行の高さを大きくし(20くらい)グループボックスを上下に広げれば大丈夫です。 でもほんとうはもっと行の高さを低くしたいのです。(12くらいに)良い方法はないでしょうか?

  • Excelのオプションボタンについて

    前述に同じ質問があったら申し訳ありません。 ExcelのシートAでオプションボタンを5個作成し、その内のどれかを選ぶようにした結果を、シートBに反映させる方法を教えてください。 PC初級なので ヘルプで探しても解りませんでした。 どうぞ宜しくお願いします。

  • VBA のオプションボタンって・・・

    教えて頂きたいのですが、 普通、オプションボタンってユーザーフォーム上に作成すると思いますが、訳があってsheet上に作りたいのです。 コントロールツールボックスで作成した直後はちゃんとマクロが走るのですが、一回セーブしてbookを閉じてからオプションボタンを押そうとするとマクロが走ってくれません。 自分で思うに、オプションボタンが画像として扱われている雰囲気がするのですが、ご存知の方がいらっしゃったら教えてください。よろしくお願い致します。

  • Excel2007 VBA シート上のオプションボタン

    Excel2007のVBAで質問があります。 シート上に複数(90個)のオプションボタンが設置しているシートが有りコマンドボタンが押されたときに どのオプションボタンが選択されているか判断したいのですが、 IF文で一つ一つ下記のように書くと個数が多いたムダに長いロジックになります。 If Worksheets("Sheet1").OptionButton1.Value Then chk_f = 1 end If If Worksheets("Sheet1").OptionButton2.Value Then chk_f = 2 end If         :         : ユーザーフォームに設置しているオプションボタンは、下記のようにFor文で回せるのは判っているのですが、 For i = 1 To 90 If Me.Controls("OptionButton" & i).Value Then chk_f = i exit for End If Next シート上のオプションボタンでも同様の事は可能でしょうか? もしなければオプションボタンとセルをリンクさせてそのセルをFor文で回して確認していく方法が出来るかなと考えています。

  • VBA(エクセル)で自動的にボタンをクリックさせるには

    いつもお世話になっております。 下記のことがしたいのですがどうやって良いのかがわからなくって困っております。 やりたいこと。 AブックとBブックが有るとします。(双方ともエクセルファイル) エクセルのVBAで、Aブックのシート上のコマンドボタンを押すと Bブックのシート上のコマンドボタンをクリックするという動きを VBAでさせたいのですがどうしてもクリックさせることができません。 試したこと。 初めは、AのボタンをクリックするとBのボタンをセレクトして SendKeysでENTERを送ってみたりしたのですがうまくいきませんでした。 何かやり方が有りましたら、お教えいただけませんでしょう。 宜しくお願いいたします。

専門家に質問してみよう