• ベストアンサー

Excel関数、VBAについて

関数、VBAを学び始めた初心者です。 カレンダーを作成しました。その日の天気を簡単に入力する方法を教えて下さい。 セルA1にセルG1に入力されている(晴、曇、雨)のいずれかをクリックして入力する関数式。又はマクロ。 よろしくお願い致します。

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

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

VBAと言っているのは、ExcelのVBAのことで、エクセルでできる機能が、どういうものがあるかを、ある程度、学習してその後に進むもののはず。VBAはアプリと不即不離のものだ。 こういう日ごろに出くわした、課題にすぐ取り掛かろうとするのは、行き過ぎと思う。 初めは、VBA解説書、WEBのVBA記事などに出ている、課題を勉強して、理解して覚え、自分の引き出しに入れて、レパートリを増やしてからの課題だ。 それに、まずエクセルVBAの総論的な部分を勉強したか? エクセルでできる機能を(手作業で)、まず、自己のものにしてからだ。 ーーー そもそも、 本件では、エクセルの入力規則の(リストの)ことが、出て来てない、のが問題(経験不足)と思った。. ーー A1:A5セルに、それを設定するのは Sub test01() Range("A1:A5").Validation.Delete Range("A1:A5").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="晴れ,雨,曇り" End Sub でできる。 ーー しかし、本件では、とびとびのセルに、入力規則を設定したい、となるであろう。 その場合、上記コードをどう修正すべきか。 VBAの総論の課題だ。 手作業で、マウスを使い、複数の飛び飛びのセルを選択してのち実行は下記。 Sub test02() Selection.Validation.Delete Selection.Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="晴れ,雨,曇り" End Sub 「複数の飛び飛びのセルを選択して」は、VBAだけで行うのは、どうするか? これもVBAの総論に出てくる問題だ。 これもすでに知っているか?  だから学習の順序に注意すべきと思う。

zyakusou
質問者

お礼

年を取ると結果だけを求めてしまいがちになりお言葉通り反省しております。 自宅待機を余儀なくされてパソコンばかりをいじっております。Exsel関数、VBAなど基礎からきちっと学習をしていきます。 いろいろとありがとうございました。

その他の回答 (3)

  • f272
  • ベストアンサー率46% (8007/17112)
回答No.3

G1には例えば「雨」と入力されているのですか?それとも「(晴、曇、雨)」と入力されているのですか? いづれにせよ最も簡単な入力はA1に直接入力することです。関数やマクロを使う必要はありません。 関数を使うのは他のセルの入力値に連動させて決めたいとき,マクロを使うのは大量の処理をしたいときです。あなたの状況では使う意味が感じられません。

zyakusou
質問者

補足

早速回答をいただきありがとうございます。 毎日のことですので天候の欄(例としてA1)に他のセル(例としてG1)にあらかじめ入力されている文字(または天候の絵文字)をワンクリックで入力したいのです。G1に晴、G2に雨、G3に曇と別のセルに分けなければなりませんか。 いずれは、その日の気分も顔文字で選べるようなことも考えています。よろしくお願い致します。

回答No.2

プルダウンメニューで選べるようにすれば楽だと思います。セルA1を指定してデータタブからデータの入力規則、ダイヤグラムで入力値の種類でリストを選び参照元に例えばですがセルG1晴セルG2曇セルG3雨と入力しておいて参照元にします。 セルA1だけでなくA列の入力したい部分を指定してからプルダウンメニューでリスト表示出来れば良いと思います。

zyakusou
質問者

お礼

そうですね。プルダウンやAlt矢印でできますね。 ありがとうございました。

  • kkkkkm
  • ベストアンサー率65% (1615/2454)
回答No.1

A1に=G1としておけば良さそうな気がしますが・・・

関連するQ&A

  • わからないIF関数について教えて下さい

    IF関数で下のような表を作成したいのでどなたか相談に乗って下さい。 「C」のセルに、「1:晴れ 」の場合は、「1」を表示、 それ以外は「0」を表示させるIF関数を作成したいのですが、 うまくいきません。ちなみに、 =IF($A1="1:晴れ",1,0) と入力しましたが、「1:晴れ 」とAのセルに入力されてるのに 「1」と表示されませんでした。ちなみに「A」のセルは入力規則でリストが 入っています。   A     B     C    1 1:晴れ 1/20    1 2 2:雨   1/21   0  3 3:曇り  1/22   0 4 4:雪   1/23   0 5 1:晴れ  1/24   1 全然わからなくて困っています。 どなたか助けて下さい。 宜しくお願いします。

  • 条件付書式のVBA

    条件付書式のVBAについて質問させてください。 A1:A100に「晴れ」「曇り」「雨」「台風」「不明」と入力するとします、するとその行のいくつかセルに色をつけたいです。 たとえば、A1に「晴れ」と入力されたらB1、C1、(D1とばして)E1、F1・・・に色がつく。 できればVBAの式を教えていただけると大変助かります。 どうぞよろしくお願いいたします。

  • EXCEL-VBA の round関数

    EXCEL-VBAで Cells(1, 1) = Round(Cells(3, 3), 0) として、 C3 に28.5 を入力し、上のマクロを実行すると、 A1には、28と表示されてしまいます。 ワークシート関数の =round(c3,0) を他の適当なセルに入力すると、 その返り値は、29 とちゃんとなります。 c3が 28.5001 とかだと両者ちゃんと 29 となります。 これは、VBA関数のバグなりスペックなのでしょうか?

  • excel2000のVBAについて

    excel2000でコマンドボタン(command1)をclickすると VBAの command1_click関数の処理をするという マクロをVBAで作成したいのですが、 (1)excelシート上にコマンドボタンの作成方法 を教えてください

  • エクセルVBAでワークシート関数のようにしたい

     例えば、セルA1に日付を入力して、セルB1に関数WEEKDAYが入力されていると、すぐセルA1の値を返してくれますが、これと同じことをVBAで再現したいのですが、可能でしょうか?  マクロやVBAでWEEKDAYを記述しても、「ツール」→「マクロ」→「マクロ」か「VBA」でやらないとA1の値をB1に返せないので、A1に日付を入力した瞬間、B1に値を返したいのですが、よろしくお願いします。

  • 関数をVBAで簡素化する

    よろしくお願いします シート枚数22枚 各シート セルG11からG71まで 各シートの各行にこの関数を入力するのは労を要します。 また、VBAに下のように1ツづつ入力するのも同じです。 Range("G11").Value="=IF(E11+F11=0,0,G10+E11-F11)"          ↓ Range("G71").Value="=IF(E71+F71=0,0,G70+E71-F71)" VBAで簡素化ができないでしょうか

  • 【EXCEL2007】 VBA(マクロ)の編集

    EXCEL初心者です。 マクロというものを最近知り、マクロ作成の練習をしているところです。 今こういったことで悩んでいます。 ■『「上書き保存しますか」というメッセージ』で「いいえ」が押された場合に、 『「保存する」という動作をしない(Exit sub)』というソースを 書きたいが、どのようにソースを作成すればいいのか。 ■現在こういった『VBA(マクロ)』を作成しています。 『(1)「B2」セルに文字を入力 (2)マクロ機能を登録した「ボタン」をクリック (3)「B2」セルに入力した名称で「新しいブックを作成」 (4)そのブック名称で指定先に「保存」する。』 今のところ、「マクロの記録」でそういうプログラムを作ること自体は勝手にできてくれました。 「B2」セルに「SampleSheet」と入力して、ボタンを押せば、 「SampleSheet」という「名称」で「新しいブックを作成」することはできています。 ■ですが、例えば「B2」セルに入れた名称が、『保存先にすでにあり』 「上書き保存しますか」というメッセージが出た場合、 上書き保存したくないので、「いいえ」ボタンを押すと 「エラーメッセージ」が出てしまいます。 そこで、 『「上書き保存しますか」というメッセージ』で「いいえ」が押された場合に、 『「保存する」という動作をしない、そのマクロ自体を終了する(Exit sub)』というソースを 書きたいんですが、どのようにソースを作成すればいいのかがわかりませんでした。 ■参考ソースをのせていただけると助かります。 ご回答、よろしくお願いします。

  • 関数 VBA マクロ?

    おせわになります。 よくエクセルで見積書を作成してるんですが、 単価表の本からそのつど値段を拾って定価、原価、労務費を 入力しています。そのたび大変な時間を費やしてしまいます。 積算のソフトを買えばそれまでなのですが・・・・。 そこで、自分でエクセルを使って 一覧表から品名をクリックすると自動で見積書が 出来るようなものをつくりたいと考えています。 関数を使えばよいのでしょうが、なかなかよい参考書が 見つかりません。 それに、VBA、マクロっていう機能もどんなものなんでしょうか? よい参考書、VBA、マクロについて よろしくお願いします。

  • エクセル2010 VBA初心者です

    エクセル2010で30日分の日報を作成しています 日付の入力をカレンダーから選択したくて、Microsoft Date and Time Picker Control6.0 を使用して、日報1日目の日付のセルにカレンダーから日付を入力する事が出来るようになりました。 これを30日分のそれぞれの日付のセルに入力出来るようにするにはどうすれば良いでしょうか? 単純にコピーして貼り付けても出来ませんでした。 VBAやマクロは初心者ですが、教えていただける方がいましたら宜しくお願い致します また補足が必要な物があれば教えてください 宜しくお願い致します

  • 確率の問題です。解説をお願いします。

    はじめまして。 下記の問題の解説をお願いします。 --------------------------------------------------------  翌日の天候を決める処理を以下のように定義する。  ++++++++++++++++++++++++++++++++++++++++++++++++  A.「晴れ」の翌日は「晴れ」か「くもり」である。  B.「くもり」の翌日は「晴れ」か「くもり」か「雨」である。  C.「雨」の翌日は「くもり」か「雨」である。  晴れカード 12 枚、くもりカード 10 枚、雨カード 8 枚からなる 30 枚のカードがあり、  本日の天候から見て、翌日の天候にならないカードを全部抜いて、この束から無作為に 5 枚を引く。  引いたカードのうち最も多いものを翌日の天候とする。  最多のものが複数種類ある場合は、その中より等分の確率で再抽選する。  ++++++++++++++++++++++++++++++++++++++++++++++++ (いずれも計算過程を明示する事、有効数字は3桁とする) (1)現在の天気を「晴れ」とする。翌日の天気が「くもり」である確率を求めよ。 (2)現在の天気を「晴れ」とする。2日目の天気が「くもり」である確率を求めよ。 (3)現在の天気を「晴れ」とする。3日目の天気が「雨」である確率を求めよ。 (4)「晴れ」→「晴れ」の確率を求めよ。 (5)「晴れ」→「くもり」の確率を求めよ。 (6)「晴れ」→「雨」の確率を求めよ。 (7)「くもり」→「晴れ」の確率を求めよ。 (8)「くもり」→「くもり」の確率を求めよ。 (9)「くもり」→「雨」の確率を求めよ。 (10)「雨」→「晴れ」の確率を求めよ。 (11)「雨」→「くもり」の確率を求めよ。 (12)「雨」→「雨」の確率を求めよ。 (13)「晴れ」「くもり」「雨」の確率を、それぞれx,y,zとする。     x,y,zを使って翌日に「晴れ」「くもり」「雨」が出現する確率を記述せよ。 (14)これを無限回繰り返した時、「晴れ」「くもり」「雨」の出現する確率を求めよ。

専門家に質問してみよう