• ベストアンサー

エクセルかマクロで・・・

エクセル関数かマクロで作りたいのですが、   A列に数字B列に個数を入力していくとします。   A列の数字をB列の個数分だけC列に表示したいのです。  例えばA1に300、B1に5、A2に500、B2に6と入力した場合、   C1からC5に300、C6からC11に500、と表示するにはどうしたらよい  でしょうか。 よろしくお願いいたします。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

A列にどこまで数字が入るかわからない以上、ワークシート関数では難しいのではないでしょうか。 マクロならこんな感じ。 Sub test01() Dim c As Range Dim n As Long, x As Long With ActiveSheet Set c = .Range("A1") Do Until c = "" n = c.Offset(0, 1).Value x = .Cells(Rows.Count, "C").End(xlUp).Row x = IIf(x = 1, x, x + 1) .Range(.Cells(x, "C"), .Cells(x + n - 1, "C")).Value = c.Value Set c = c.Offset(1, 0) Loop End With Set c = Nothing End Sub

syoukunn
質問者

お礼

早速試したところ、上手くいきました。 ありがとうございました。

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

Sub try() Dim r As Range, rr As Range With ActiveSheet Set rr = .Range("C1") For Each r In .Range(.[A1], .Cells(Rows.Count, 1).End(xlUp)) Set rr = rr.Resize(r.Offset(0, 1).Value) rr.Value = r.Value Set rr = rr.Offset(r.Offset(0, 1).Value) Next End With End Sub かな。

syoukunn
質問者

お礼

ご回答をありがとうございました。 早速利用させていただきます。 回答がどちらもよかったので、回答順にポイントをつけさせていただきました。ごめんなさい。

関連するQ&A

  • エクセルでマクロを作りたいのですが上手くいきません

    エクセルで会社で使うファイルを作成していますが、ファイルサイズが大きくなりすぎたので、こういうマクロが作れないかと調べていたのですが、やり方がわからないので困っています。 わからないのは、入力シートのA列にデータを入力して、シート2のB列に自動的に表示する ことを自動的にやってくれるマクロです。 今はIF関数をシート2に入力している状態ですが、セルに関数を入れる方法だとファイルサイズが大きくなりすぎてしまいます。 (IF関数をあらかじめ入力しておくセル数がとてもたくさんある為) なお、入力シートA列がブランクの場合は、シート2のB列には何も表示されないようにしたいです。 大変困っております。よろしくお願いします。 

  • Hyperlink関数をクリックしてくれるマクロ

    どなたか詳しい方教えていただけないでしょうか? ExcelのセルA1に以下のhyperlink関数を入れています。 =HYPERLINK(″#C″&MATCH(B1,C:C),″クリック″) 隣のB1に入れた数字を元にC列に存在する同じ数字先にジャンプするように関数を作ってます。 A1にできたリンクをクリックしたは、B1に入力されているものと同じ数字先のC列に飛ぶようにマクロを組みたいのですが、どうしたらいいでしょうか? ハイパーリンク関数がマクロに組み込めないのと色々調べてみましたがうまくいかないのでお手上げです。 どなたか詳しい方教えていただければと思います。 どうぞよろしくお願いします!

  • エクセルである特定の条件のときだけ文を入力させるフォームを作りたい!

    宜しくお願いします。 エクセル2003を利用しているのですが 下記のようなことは可能でしょうか? ================================== A列で、数字の3が入力された場合のみ B列にその内容の入力ができる。 A列に3が入力されたときだけ B列に入力してください、という メッセージを表示することが出来る ===================================== 関数では難しいでしょうか・・・。 マクロはほとんどわからないので なんとか関数で実現したいです。 詳しい方教えてください

  • EXCELに詳しい方

    EXCELに詳しい方、以下2点わかりましたら宜しくお願いします (1)セルA1に「食費」「交際費」と記載すると セルB1に記載されていたものが消える(空欄にする)ようにするにはどうすればいいでしょうか? セルB1に直接数字を入力したく関数を入れてしまうと数式が上書きされて消えてしまうので 関数ではない設定で方法はありますか? 条件付き書式でできるかな、と思いましたが設定できるのは書式だけで セルに入力していたものを消すことは不可能ですよね・・? (2)A1にアルファベットと数字の文字、C1には数字があるときに B1に1から連続した数字を自動的に割り振られるようにしたいです つまり A列   B列   C列 JKL456  1  3000       2   4003       3   5456       4   5894 S56D  1    8111       2   4512       3   6812 SJN2  1      5812       2   4213 ポイント A列とC列に入力されたときB列が1になる C列に入力されているとき上の1から連続した数字をもってくる A列とC列は自分で入力するがB列は自動で数字が入るようにしたい できたらマクロを使わないで設定できたらいいですが マクロを使わないとできないようであれば そのやり方も教えてください。 宜しくお願い致します。

  • かんたんなエクセルマクロを教えてください!

    エクセルマクロを勉強しはじめたばかりのものです。 列にある、様々な文字列で、同じ名前があったときに、 その個数を出すようにするにはどうしたらよいでしょうか? 【例】   C 1名前 2りんご 3メロン 4いちご 5りんご 6レモン 7メロン 8すいか 9メロン 10空白 Cの列に様々な名前の品物があります。そのときに、行の2~9(9はもっと長いときがあり、制限のないものとします) の中の文字列で、同じものがあったときに、その名前と個数を出すようにしたいのです。(C1は見出しなので省きます) 上記の例でしたら、「りんご」が2個、「メロン」が3個あります。2個、3個という数えた個数はB列の同じ場所の一番上に上書きで 出す形で結果を表示したいと思います。例でいえば、「りんご」は2個だったので、B2に「2」と出力。メロンは3個だったので、 B3に「3」と出力させたいのです(B列にはすでに他の文字列が入っています。それを数値で上書きします。) C列をたどって、同じ文字がないときには、「同じものはありません」とメッセージボックスで出力するようなマクロです。 例ではC9までですが、このケースではC10は空白になります。C100まであったときにはC101が空白です。 こんなカンタンなのもわからないので、ぜひお教えいただけますでしょうか?できるだけ短いものが嬉しいです。使っているエクセルはおはずかしながらEXCEL97です。 よろしくお願いします。

  • Excelのマクロを教えてください。

    Excelのマクロを教えてください。 Sheet1 F列(商品) F2テレビ、F3DVD、F4携帯電話、サプライ、、、F32まで商品あり。 I列~N列の1段目(人*増える場合あり) I1佐藤、J1高橋、K1田中、L1中村、、、 I2~N32まで、1、2、3と個数が入力されています。 A列~E列とG列とH列は今回の処理に不要なデータがいます。 これをSheet2に A列に人、B列に商品、C列に数 例) A1 佐藤、B1 テレビ、C1 1 A2 佐藤、B2 DVD 、C2 3 A3 高橋、B3 携帯電話、C3 2 のように、書き出すマクロを教えていただけませんか? 別にマクロでなくても、Excel2007までの機能でできることであればそれでもいいです。 丸投げして申し訳ありません。

  • Excelの振り分けについての使い方

    ExcelでTodoリストを作成しようと考えています。 そこで以下のようなことをしたいのですが、できるのでしょうか。 まず、 A列→やるべきことをすべて書く B列→日付 C列→B列に入力した日にできるやるべきことの個数 D列→B列に入力した日にやるやるべきこと 分かりにくい表現ですみません、図を掲載するので理解お願いします。 A列に入力したやるべきことをC列に入力した個数分だけD/E/F/G列を自動的に入力させたいのです。 要するに上の図から下の図へ関数やマクロを使って自動でやりたいです。 図はhttps://sites.google.com/site/picturestock1234/home/yahoochiebukuroです 回答よろしくお願いします。

  • エクセルで…関数かマクロか?

    エクセル2007を使っています。 3列のシートがあるとしますね。 それぞれの列は、「A 現金残高」、「B 収入」、「C 支出」とします。 たとえば、3行目から数値を入れるとします。 普通ならば、B3 (収入)のセルに 1000(円) と数字を打ち込めば、 A3 (現金残高)のセルに同じく 1000が入るよう、=B3 とすればいいと思います。 同様に、C3のセルに1000と入力すれば、 A3のセルには -1*(C3) とすることで、現金残高が収入と支出によって、 プラスマイナスされるようにし、あとで各列を∑すれば済みますね。 でも、いま僕がやりたいのは、 たとえば現金残高 A3のセルに -1000 と入力すると、自動的に C3のセルに 1000 と 表示され、A3に 1000 と入力すると、 B3のセルに 1000と表示されるようにしたいのです。 要するに、現金残高に入力した数値がプラスかマイナスかによって、 数字が表示されるセルを個別に指定し、指定したセルに計算結果を表示させたいわけです。 IF関数で、数値のプラスマイナスは判断できますが、任意のセルを指定させる方法が わかりません。 「もし…だったら 『任意のセルに』○○せよ」  というような指定はできるのでしょうか? もしくは、マクロを使わないとできないのでしょうか? いろいろサイトも調べてみましたが、力不足で回答にたどり着くことができませんでした。 よろしくご教授お願いいたします。

  • ■エクセル■ PRODUCT関数で「~ではない」。

    早速ですが、例えば、 ・A1~A10の範囲に1~5が入っている。 ・B1~B10の範囲に文字列「あ」~「お」までが入っている。 ・C1~C10の範囲に個数が入っている(1~99の数字)。 この場合で、D1のセルに「A1~A10の数字が5で、「お」以外の個数の合計」を求めるときはどういった関数を使えばいいのでしょうか?? =SUMPRODUCT((A1:A10=5)*(B1:B10<>"お")*(C1:C10)) と、入力してもエラーが出てしまうので、困ってます。どうしたらできますか?? よろしくおねがいします。

  • エクセルの関数で

    A列にある品物の個数を入力します。 B列には A列の数量が10以下の場合「A」、11~19までは「B]、20~29までは「C]、30以上は「D」と表示させます。 それで、C列には 「A」の場合、1000 「B」の場合、2000 「C」の場合、3000 「D]の場合、4000 と表示させたいのですが B列とC列への関数を教えていただけないでしょうか?

専門家に質問してみよう