- 締切済み
excel vba 作成方法
現在大学2年生です。課題の提出をしたいのですが、excel vbaがよく分かりません。心優しい方、回答をお願いします。 コンボボックスで1945年から2011年の一つを選び、チェックボックスで男か女のどちらかを選び、コマンドボタン「結果」をクリックすると、テキストボックス3つ「年齢」「干支」、(チェックボックスで男か女を選択)「平均寿命はあと何年」の値が入るというプロブラムを作りたいです。 コンボボックスはsheetのA2~A68の値から選択するというところまではできました。テキストボックスの年齢はsheetのC2~C68,干支はD2~D68、チェックボックスで男を選んだ場合はE2~F68,女を選んだ場合はG2~G68が、コマンドボタンを押した瞬間に出るというプログラムは可能でしょうか? パソコンが苦手です。分かりやすく教えていただけたら本当に嬉しいです。よろしくお願いします!!
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- layy
- ベストアンサー率23% (292/1222)
これ以前の課題はどんなものだったか、 どこまでスキルがあるのか、これによってパソコン苦手という質問者に対して どこから説明すべきかわからない。 これが最初の課題?としたら何を教えているのだろう、 教え方もおかしい時代だからこういう質問も多いのか?。 基本的なところは講義受講しているのだろうか?。 ---------------------- それはさておき、本題で、 質問をみると 要件は明確になっててどんなシステムにするかのイメージはある、 ですが、 これだけでシステムがすぐできるものではないのです。 >チェックボックスで男か女のどちらかを選び、 >コマンドボタン「結果」をクリックすると、 >テキストボックス3つ「年齢」 >「干支」、 >「男女」(チェックボックスで男か女を選択) >「平均寿命はあと何年」の値が入る 考えていくテーマはあと6つくらい、か。 それぞれでどんなことをしなければならないか、どんな仕掛けか、 そのあたりから組み立ててみてはどうでしょうか。 「年齢算出ロジック」、年を与えて年齢が求まるにはどんな式? 「干支算出ロジック」、年から求めるとか12で割るとか? ・・・ ボタンを押したときに、これらの 「年齢算出ロジック」を実行、 「干支算出ロジック」を実行、 ・・ と組み立てていくと少しずつ最終目的に近づきます。 ズバリ回答をもらうのはカンニングしているようなもの、 考えることしていないので、習得できるものはほとんどありません。 (この類の仕事で就職するなら、ついていけず落ちこぼれます。) 作りながら実行結果を確認していくには、 ステップ実行のやり方もマスターしておくことでしょう。 ネットで回答もらって行うようなものでないと思います。 できないなら、面倒でも1つ前の講義?を復習することです。
- imogasi
- ベストアンサー率27% (4737/17070)
以前は宿題の解答に類する質問は、本コーナーの規約違反であった。 今もそっくり全面的回答を回答者が挙げるのは、一種の講義・授業妨害であるとも言えると思う。講義終了後、わからない点に絞って質問すべきだ。 ーー この問題は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 これで生年と男女の別がとらえられます。 あと平均余命の表から年齢に応じた平均余命を出すプログラムが必要ですが、初心者には難しいと思う。 其れで解答を略します。 それに最後に今回のコントロールの選択を、次回の人のために、一旦ご破算にする必要がある。
- ichhabehunger
- ベストアンサー率55% (27/49)
こんばんは。 課題は本来自分でやるものです。 それに授業をきちんと聞いていればわかると思うのですが。 ただここで回答をもらうだけではあなたのためになりません。 世の中をこの程度のものかと思ってもらうのも心外です。 あくまでこれを薬に今後勉学に励もうという人だと信じて少しだけお手伝いします。 ただし、私はあなたからの返信を求めますし、時間もかかります。 それでもいいならお付き合いします。 そして、最終的には完全な解答までこぎつけることができます。 まず、コンボだのチェックボックスだのと言っていますが、フォームのコンボやチェックボックスですよね? 「フォームの」というのは、シートに貼りつけたものですよねって聞いてます。 「コンボボックスはsheetのA2~A68の値から選択するというところまではできました」ということですから、そのコンボを右クリックして出てくるメニューから、「コントロールの書式設定」で「入力範囲」と「リンクするセル」の設定はできたということですね? コンボで西暦年を選択すれば、リンクするセルに値が入りますが、それが選んだ西暦年の、A2を1としたときの行番号であることは理解できますか?