• 締切済み

excel vba 作成方法 

現在大学2年生です。課題の提出をしたいのですが、excel vbaがよく分かりません。心優しい方、回答をお願いします。 コンボボックスで1945年から2011年の一つを選び、チェックボックスで男か女のどちらかを選び、コマンドボタン「結果」をクリックすると、テキストボックス3つ「年齢」「干支」、(チェックボックスで男か女を選択)「平均寿命はあと何年」の値が入るというプロブラムを作りたいです。 コンボボックスはsheetのA2~A68の値から選択するというところまではできました。テキストボックスの年齢はsheetのC2~C68,干支はD2~D68、チェックボックスで男を選んだ場合はE2~F68,女を選んだ場合はG2~G68が、コマンドボタンを押した瞬間に出るというプログラムは可能でしょうか? パソコンが苦手です。分かりやすく教えていただけたら本当に嬉しいです。よろしくお願いします!!

みんなの回答

  • layy
  • ベストアンサー率23% (292/1222)
回答No.3

これ以前の課題はどんなものだったか、 どこまでスキルがあるのか、これによってパソコン苦手という質問者に対して どこから説明すべきかわからない。 これが最初の課題?としたら何を教えているのだろう、 教え方もおかしい時代だからこういう質問も多いのか?。 基本的なところは講義受講しているのだろうか?。 ---------------------- それはさておき、本題で、 質問をみると 要件は明確になっててどんなシステムにするかのイメージはある、 ですが、 これだけでシステムがすぐできるものではないのです。 >チェックボックスで男か女のどちらかを選び、 >コマンドボタン「結果」をクリックすると、 >テキストボックス3つ「年齢」 >「干支」、 >「男女」(チェックボックスで男か女を選択) >「平均寿命はあと何年」の値が入る 考えていくテーマはあと6つくらい、か。 それぞれでどんなことをしなければならないか、どんな仕掛けか、 そのあたりから組み立ててみてはどうでしょうか。 「年齢算出ロジック」、年を与えて年齢が求まるにはどんな式? 「干支算出ロジック」、年から求めるとか12で割るとか? ・・・ ボタンを押したときに、これらの 「年齢算出ロジック」を実行、 「干支算出ロジック」を実行、 ・・ と組み立てていくと少しずつ最終目的に近づきます。 ズバリ回答をもらうのはカンニングしているようなもの、 考えることしていないので、習得できるものはほとんどありません。 (この類の仕事で就職するなら、ついていけず落ちこぼれます。) 作りながら実行結果を確認していくには、 ステップ実行のやり方もマスターしておくことでしょう。 ネットで回答もらって行うようなものでないと思います。 できないなら、面倒でも1つ前の講義?を復習することです。

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

以前は宿題の解答に類する質問は、本コーナーの規約違反であった。 今もそっくり全面的回答を回答者が挙げるのは、一種の講義・授業妨害であるとも言えると思う。講義終了後、わからない点に絞って質問すべきだ。 ーー この問題は1人分を選択して終わりにするのか、多数の対象者を対象にするのか質問では明確でない。 後者なら氏名などの情報の採録が必要だろうが、平均余命は何年と出して1回の終わりらしいから、前者なのだろう。 また男子か女性かはどちらか一方だと思うが、チェックボックスでは実現が難しい。 http://d.hatena.ne.jp/nelnal_programing/20071023/1193133784 実現できないことは無いが、初心者の問題ではない。ほんとに先生はチェックボックスでやれといいましたか? オプションボタンなどを使うのが初心者にはやさしいのではないか。 ーー >テキストボックスの年齢はsheetのC2~C68,干支はD2~D68、チェックボックスで男を選んだ場合はE2~F68,女を選んだ場合はG2~G68が、コマンドボタンを押した瞬間に出るという の意味が十分わからないので、以下はコントロール中心に説明してみます。 ーーー まずコンボボックスやコマンドボタンなどは「コントロール」と呼ばれる。コントロールを表示するには、エクセルVBAでは (1)シート (2)フォーム のどちらかの「台紙」に当たるものに貼り付けることが必要である。 普通はフォーム上に貼り付けるので、ここではフォームとしよう。 ーー ●フォームの表示方法(「デザインモード)はどうすれば良いか VBE画面で、挿入ーユーザーフォーム ●フォームの上に、コンボボックス(生年用)、チェックボックス(男用)、チェックボックス(女用)を各々1つフォームに貼り付けてください(デザインモード状態で行う作業です)。 ドラッグアンドドロップすることで出来る。 ーー ●まずコンボボックスの表題、チェックボックスの表題(=性別とか男女)、コマンドボタンの表題は設定できますか。 これらは各コントロールのデザインモード時の、プロパティの設定で行います。 プロパティはコントロールのデザインモードで右クリックすると出てきます コンボボックス ColumnHeads True  でA1:A67のA1に入れた生年がトップ行に出る チェックボックス Caption  男 チェックボックス Caption  女 コマンドボタン Caption 実行(とか登録とか入力終了) ーー ●実質内容を表示する仕組み コンボボックスに表示するアイテム(選択項目) コンボボックス(生年用) RowSource A2:A67 A列の生年に当たる干支は、ユーザーが調べてシートに入力しておくことにする。(これを関数式で出すとかにすると難しくなり論点がぼやけるので略) ●選択されたデータをシートのセルに反映する仕組み コンボボックスで選択された項目をシートのセルに入れる チェックボックスの値をシートのセルに入れる はプログラムでセットします。 ワークシートにコントロールを貼り付けるとプロパティにLinkedCellなどのプロパティが在るがフォームに貼り付けた場合は無いようだ。   ーー ●コントロールに表示する初期値 略 ーー 入力後コマンドボタンは、コントロールへの入力が完了したという、使用者の決意をシステムに伝えるために使いますが これはコマンドボタンの、「クリックイベント」と言うところに書きます。 このことは判ってますか。 Private Sub CommandButton1_Click() x = ComboBox1.Text MsgBox "生年は" & x MsgBox CheckBox1.Value If CheckBox1.Value = True Then MsgBox "性別は" & "男性" CheckBox2.Value = False '男性のチェック優先 End If If CheckBox2.Value = True Then MsgBox "性別は" & "女性" End Sub これで生年と男女の別がとらえられます。 あと平均余命の表から年齢に応じた平均余命を出すプログラムが必要ですが、初心者には難しいと思う。 其れで解答を略します。 それに最後に今回のコントロールの選択を、次回の人のために、一旦ご破算にする必要がある。

回答No.1

こんばんは。 課題は本来自分でやるものです。 それに授業をきちんと聞いていればわかると思うのですが。 ただここで回答をもらうだけではあなたのためになりません。 世の中をこの程度のものかと思ってもらうのも心外です。 あくまでこれを薬に今後勉学に励もうという人だと信じて少しだけお手伝いします。 ただし、私はあなたからの返信を求めますし、時間もかかります。 それでもいいならお付き合いします。 そして、最終的には完全な解答までこぎつけることができます。 まず、コンボだのチェックボックスだのと言っていますが、フォームのコンボやチェックボックスですよね? 「フォームの」というのは、シートに貼りつけたものですよねって聞いてます。 「コンボボックスはsheetのA2~A68の値から選択するというところまではできました」ということですから、そのコンボを右クリックして出てくるメニューから、「コントロールの書式設定」で「入力範囲」と「リンクするセル」の設定はできたということですね? コンボで西暦年を選択すれば、リンクするセルに値が入りますが、それが選んだ西暦年の、A2を1としたときの行番号であることは理解できますか?

関連するQ&A

  • エクセルVBAでコンボボックス

    エクセルVBAのコンボボックスの使い方について質問します。 実現したいプログラムは 「チェックボックスから選んだ数字で計算するプログラム」 です。 具体的には… まず、コンボボックスをシート上に配置します。そのコンボボックスには 数字の1から10を選べるようにしておきます。 次に、コマンドボタンを配置します。これは単にプログラムをスタート させる目的です。 ユーザーは、まずコンボボックスから好きな数字を選択します。 そしてスタートボタン(コマンドボタン)を押します。 すると、選んだ数字の2倍がセルに表示されます。 さらに発展系としては… チェックボックスを4つ配置します。各チェックボックス には、+、-、×、÷を割り振っておきます。 また、コンボボックスを2つ用意し、それぞれ1~10の数字をリストにします。 ユーザーは、チェックボックスから好きな記号を選び、さらにコンボボックスから 好きな数字を選びます。そしてスタートボタンを押すと、選んだ数字を選んだ記号 で計算した値がセルに表示されます。 というようなプログラムを考えているのですが、うまくできません。 ポイントは、 ・チェックボックスにリストを入力する方法 ・チェックボックスの選択状態や、リストボックスから選ばれた数字を、  変数として取得する方法 インターネットで調べているのですが、リストボックスに値を入れるのにもマクロを走らせ なければならない方法とか、ユーザーフォームでの説明ばかりでなかなか実現に至りません。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_userform05.html プログラムのイメージ図としては添付の図の通りです。 どのようにプログラムを書けばいいのでしょうか。

  • エクセルVBAについて質問です。

    エクセルVBAについて質問です。 シート1のユーザーフォームにコンボボックスとテキストボックスが各1つずつ、 シート2のA列には1行目から順に「あ」「い」「う」と文字が入っていて、B列には「1」「2」「3」と値が入っています。 コンボボックスのリストにはシート2のA列の文字が選択できる状態にあります。 この状態で、例えばコンボボックスで「い」を選んだら、テキストボックスに自動的に「2」と入る、というように、コンボボックスのリストの中から任意の文字を選択したときに、テキストボックスにB列の値が入るようにするにはどのようにすればいいのでしょうか?よろしくお願いします。

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

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

  • エクセル VBA 

    エクセルのユーザーフォームのチェックボックスについて 教えて下さい。 現在チェックボックスが15個あるのですが 例えばテキストボックスが2個あり テキストボックス1に数字の2 テキストボックス2に数字の6 を入れ、コマンドボタンを押すと チェックボックスの2から6にまとめてチェックが入るようなコードが組みたいです。 宜しくお願いします。

  • VBA コントロール EXCEL

    VBAでプログラミングしています。 Excelでコントロールを使用しようと思いますが、 数が多くなりそうですが~ オプション ボタン 約20600個 チェック ボックス 約600個 コンボ ボックス 約500個 コマンドボタン 約300個 そして、上のコントロールにVBAで制御をする予定です。 値を設定、値を取得、イベントの発生などの動作になります。 環境はEXCEL 2003になります。 これで問題ないですか。 問題があったらどんな問題がありますか。(速度、メモリ、容量、エラーなど) 教えてください~

  • エクセルのユーザーフォームについての質問です。

    エクセルのユーザーフォームについての質問です。 かなりの初心者です。 テキストボックスを3つ、チェックボックスを10個作りました。 チェックボックスは複数チェックすることができます。 コマンドボタンをクリックすると、テキストボックスに入力された値とチェックされた チェックボックスがsheet1に自動入力できるようにしたいです。 たとえば、 テキストボックス1には「あいう」 テキストボックス2には「かきく」 テキストボックス3には「さしす」と入力。 チェックボックス1から10のうち、「1」「2」「3」にチェック。 この状態でコマンドボタンをクリックすると、Sheet1には     A列       B列       C列        D列 1行目 テキスト1    テキスト2    テキスト3     チェックボックス 2行目 あいう      かきく      さしす       1 3行目 あいう      かきく      さしす       2 4行目 あいう      かきく      さしす       3 このように、チェックボックスにチェックがあった数だけ、テキストボックスも コピーされて、次々と下の行に入って行くようにしたいのです。 こんなことができるのでしょうか? できるのなら、コードを教えてください。 お願いします。

  • VBAでこんなものを作成したいのですが…

    こんばんは。回答者の方には いつもお世話になっております.. Excelにコマンドボタンを付け、 コマンドボタンを押すと チェックボタンの氏名が表示され ひとつチェックをし、OKを押すと Excelにある表の方に、 氏名と、ついでに性別を表示させる そんなものを作成したいのですが… ちなみに氏名と性別はテキストボックスへ 表示させたいのですが…; 私はCace文で作成できると思ったのですが 全く進まずです…; これはマクロで可能なものなのか、 テキストボックスへの表示は可能なのか、 よろしければ参考になるサイトや こんな方法があるなの、 どんなことでもいいので 教えていただきたいです…orz 宜しくお願い致します;

  • ご教授願います。

    エクセルのVBAを多少勉強致しましたが、行き詰っていますのでどなたかご教授願います。 エクセルにコマンドボタンを二つ作成 最初のコマンドボタンをクリックするとコンボボックスが現れます。 コンボボックスには1~4があります。 1はシート1""あいう""のシート 2はシート1""かきく""のシート 3はシート1""さしす""のシート 4はシート1""たちつ""のシート を指定するようになっています。 ここでとりあえず自分の希望のしーとになるように1~4の数字を選びます。 次にもうひとつのコマンドボタンを選択するとテキストボックスが現れます。 記入し、テキストボックスと同userformにあらかじめ作っていたコマンドボタンをクリックすると先ほど選択した1~4にテキストボックスを転送するようにしたいのです。 hideを使って先ほど表示させたコンボボックスのuserformを隠して、テキストボックスのuserformを閉じる際に指定したシートをにとさせようとしましたが、 そのテキストボックスのuserformが何個かあるのでどうすればいいのかわかりません。 どなたかご教授願えませんでしょうか? よろしくお願い致します。 なお、私の説明不足で内容がよくわからなかったら一報ください。 申し訳ありませんが、どうぞよろしくお願い致します。

  • エクセル コンボボックスについて

    XP エクセル2003なのですが、 現在ワークシートに郵便番号と住所のリストを作成しています。    郵便番号     住所  ***-**** ○○県○○市・・・  ***-**** XX県XX市・・・ ユーザーフォームにテキストBOXとコンボBOXとコマンドボタンを 配置しています。 コンボBOXではリストにしている住所のみを表示していますが、 その中から探すのが大変です。そこで、 テキストBOXに郵便番号を入力し、 コマンドボタンをクリックすると、 コンボBOXに該当する住所が表示されるようにしたいのですが、 どうすればいいのか、何から始めればいいのか、 全く分かりません・・・。いろいろな方法があると思うのですが、 教えていただければ幸いです。 初心者ですので質問形式が悪いかもしれませんが よろしくお願いします。

  • エクセルVBA/マルチページ/ページ切り替え時

    エクセル2000使用 ユーザーフォーム(UserForm1):マルチページ(MultiPage1)でページを5つ 作成。各ページにはテキストボックスとコマンドボタンを配置。 テキストボックスに値入力後、コマンドボタンをクリックするとテキストボック スの値をクリアするように設定。 テキストボックスに値入力後、コマンド実行前にページを替えた時、テキストボ ックスの値をクリアしたいのですが、どのようにすればよろしいのでしょうか。 類似する過去の質問を見てもよくわからなかったので、ぜひご回答のほどよろし くお願い申上げます。