• ベストアンサー

仕入帳をエクセルのマクロを使って、作ろうとしています。

仕入帳をエクセルのマクロを使って、作ろうとしています。 その前の段階で、困ってしまいました。 sheet1の、A1からA6まで、仕入日、整理番号、商品名、シリアル番号、価格、仕入先を入れると、 sheet2の仕入明細表に、それらのデータが、既にインプットされている最終行の1行下に書かれるようにするには、エクセルでは、どの様な関数で、できるかを教えていただけるようお願いします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

同じ場所(A1~A6)から、違う場所(最終行の次)に自動的に次々にデータをいれていけるような関数はありません。 そういう場合は、マクロを使います。

abouka
質問者

お礼

BLUEPIXY 様 早速のご回答ありがとうございました。 1ヶ月前から、なんとか工夫がないものか?と 人に訊くのも迷惑であろうと思っていました。 『このような関数が無い』と教えてもらい、 悩まず次の段階にいけます。 ありがとうございました。

その他の回答 (2)

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

関数は何でも出きるものではありません。 下記のことは非常に大切な基本的なことで、これを認識しないために、関数、関数という質問が、OKWEBのエクセルの質問に良く載ります。 (1)データ・値をセットしたい(セル)側に関数式を入れて、(もって来たいセル式の=の左辺のセルから)値を持ってくるものです。 (2)そのことの反面で言えることは、送る側から、セットされる側に、データを送ることが出来ません。 イメージでは    ○  他のセルの値を使い→式を入れるセルに値を       セット    x  式を入れるセルには式の値を入れず→他のセ      ルに値をセット それで、Sheet2のデータを入れる(受ける)セルが、Sheet1のデータ入力で順次動くべき(6行ずつ下へずれるべき、)本件のようなものは上手く行きません。 しかしVBAのようなプログラムはそれが出来ます。データ移動の指示はプログラムが引きうけ、セルに指示を書くのではないからです。 また入力が終わった瞬間にボタンをクリックするなどすると、特定のプログラムを動かす、イベントプロシジュアと言うものが限定的に設けられているので、ボタン等をクリックした機会に、2回目クリックでは7-12行に、3回目は13-18行に、順次ずらして最終行の次から、6行分セットするプログラムが組めます。

abouka
質問者

お礼

imogasi 様 ご回答ありがとうございました。 大変丁寧に説明いただき、その内容は理解できました。 マクロの記録でことを進めようとしていたので、 最初から躓きました。 逃げずにVBAに取り組みます。 ありがとうございました。

回答No.2

エクセルのマクロについての質問は過去に何度も出ていますので、そちらを参考にして下さい。 過去の質問: http://oshiete1.goo.ne.jp/kotaeru.php3?q=995504 マクロ(VBA)関連HP http://www2.cty-net.ne.jp/~hidenori/index.html マクロ(VBA)は慣れないと意外と難しいので頑張って下さい。

abouka
質問者

お礼

Aquarius172 様 ご回答ありがとうございました。 紹介された『マクロ(VBA)関連HP』を見て参りました。 そこで、勉強するつもりです。 マクロ(VBA)は慣れないと意外と難しいので頑張って下さい。 と励ましていただいたものの、私は半年前、厚いExcel VBA基礎編という本を買い込んで、 開いたとたん、慣れていないためか、非常に難解で 頑張る勇気がどこかに、飛んでいっていました。 少しづつ、少しづつ勉強することにします。 ありがとうございました。

関連するQ&A

  • 在庫表の管理をエクセルで行うに当たって、教えてください。

    エクセルのシート2に在庫表があります。 在庫表には、仕入日、仕入先、整理番号、メーカー、商品分類、モデル名、車体番号、仕入金額、が 右並びに書いてあります。 整理番号は、データを入れる時に、4桁の数値で各車に、つけます。(整理番号で管理している) メーカー数は、10件のメーカー数があります。 商品分類はA-1,A-2,B-1,B-2,C-1.,C-2,C-3の7項目があります。 シート1を新規に仕入れた商品のデータインプット用とし、これに、インプットすると、 シート2の在庫表が、メーカー別、商品分類別になっているため、(別の言い方:メーカー:10×分類:7で70の在庫グループがある) その(在庫グループ)の最終行に、自動的に転記されるようにしたいのです。(別の言い方:整理番号が昇順) 同様に、売上た商品も、シート1で、売上日、売上先、整理番号、メーカー、商品分類、モデル名、車体番号、売上金額、をインプットすると、自動的に在庫表から削除されて、その行が詰まるようにしたいのです。 よろしくお願いします。

  • 在庫表シートから、売れた商品の「整理番号」を含む行を削除したいのですが

    マクロで”在庫管理”をしようとしています。 ”在庫表”シートのI列の2行目(セル;I2)に「整理番号」のタイトル、データは3行目から下方向に4桁の数値で並べて200行程度あります。(行方向には、仕入日、商品名、仕入先、金額などのデータが入れてあります。) 「売上入力シート」に、売れた「整理番号」をセル:D3から下方向に数量分入力し、それを売上表に転記(ここは出来ました)後、在庫表から売れた「整理番号」を含む行を削除したいのですが、これの”マクロコード”ができず、悩んでおります。 ヒントでも教えていただければ、助かります。 マクロの勉強を始めて数ヶ月の初心者ですが、よろしくお願いします。

  • エクセルのマクロを知りたい

    エクセルで,たくさんのデータが入力された【シートa】があります。 新しく【シートb】を作成して,そこに空白の表(1)~(10)までを作成します。 (ちなみに表(1)は1行から始まり100行まで,表(2)は101行から始まり200行まで・・・・といった感じです) 【シートb】の表(1)には,【シートa】でA列に「1」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。同様に,表(2)には,【シートa】でA列に「2」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。・・・というのを表(10)まで続けます。 上記のような命令をボタン一つで操作できるようなマクロを教えて欲しいのです。 お願いします。

  • エクセル2003 こんなことってできますか?

     商品別で仕入日順に・仕入先・仕入数量・仕入単価を記入する表を作りました。  この表のデータを基に仕入先別の表を作りたいと思っています。  商品別の表は、A列のセルを5個ずつ連結し商品名を記入し、B列以降は仕入日・仕入先・仕入数量・仕入単価・仕入合計額を記入していくように作りました。  A1~A5を連結 商品名を記入 (A6以降も5個ずつ連結)  B列以降   1行目 日付   (直接入力)   2行目 仕入先名 (直接入力)   3行目 仕入数量 (直接入力)   4行目 仕入単価 (直接入力)   5行目 仕入合計額(=B3*B4)  上記の表に対して、仕入先別(A商店・B商店・・・)の表をそれぞれ作り、商品別の表の仕入先名に入力されたときに該当する仕入先別の表へ商品名や日付金額が自動でコピーされるようにしたいのです。 仕入先別の表は形も決めてないのですが、商品別のほうはすでに完成しています。 このような状況で使える関数とかその他の方法ってあるのでしょうか? もし、できない場合はここを変えればできるかもみたいな助言でも結構です。 よろしくお願いします。

  • エクセルのマクロについて

    マクロのコードについて教えていただきたいと思います。 sheet1のA2に[=today()]の数式があって、その下の表がであります。表にもオートサムなどの関数 B2~H 70まであります。 sheet2の 1行目が日付欄で、この日付とsheet1のA2が一致した時にB2~H 70の表の数値だけを転記することは可能でしょうか。 わかりにくくて申し訳ありませんがコードがわかれば助かります。

  • エクセルでマクロを使用してシート2の表から行単位でシート1の表の指定位

    エクセルでマクロを使用してシート2の表から行単位でシート1の表の指定位置に値を表示させたい シート2の A列に番号(連番) B列に商品名(数字とアルファベットの組み合わせ) C列に仕入先(数字4桁) D列にメーカー(数字4桁) E列に区分(数字とアルファベットの組み合わせで3ケタ) が入っていて約5,000行のデータが有ります。 シート1にレイアウトした表があって シート1のB4にシート2のA2の値(番号連番) シート1のB5にシート2のB2の値(商品名) シート1のB6にシート2のC2の値(仕入先) シート1のB7にシート2のD2の値(メーカー) シート1のB8にシート2のE2の値(区分) が表示されるようにしてあります。 マクロを利用して、作成したシート1のボタンを押すと シート1のセルB4の番号欄が1から2(シート2のA3の値)に繰り上がり、 シート1の表のA列の番号と同じ行のそれぞれの値を 上記の規則で表示させるようにできますか? シート1のB4が2になるとシート1の3行目をさしますので シート1の表には、 シート1のB4にシート2のA3の値(連番) シート1のB5にシート2のB3の値(商品名) シート1のB6にシート2のC3の値(仕入先) シート1のB7にシート2のD3の値(メーカー) シート1のB8にシート2のE3の値(区分) が表示されます。 シート1のボタンをクリックするごとにB4のセルは3,4,5,6と繰り上がり シート2のA列の番号と一致した行のそれぞれの値を表示させていく。

  • エクセルのマクロについて教えて下さい。

    皆様よろしくお願いします。シート1に5桁の管理番号が不規則に並んでいます。およそ230個の管理番号があります。シート2には管理番号とデータが一覧表になっています。シート1の管理番号の下2行にシート2を参照する式(=sheet2!H3および=sheet2!W3)を手打ちで入れています。エクセルのマクロを使ってシート1の管理番号の下に値を入れるのではなく式を入れることはできますか。なお、シート1は横のセルが80、縦のセル150の中に管理番号が不規則に並んでいます。シート2にはB列に管理番号H・W列にデータが並んでいます。このようなファイルが80位ありますので手打ちではなくマクロで自動化を図りたいと思います。officeXPを使用しています。よろしくお願いします。

  • excelマクロの処理を早くしたいのですが!良い知恵ある方お願いします。

    excelマクロはここ半年位やっています。 あるマクロ(VBA)を作ったのですが、表が大き過ぎて思うような処理スピードが出ません。ハードは富士通FMV6750CL7Sで750MのCPU速度です。OSはWINDOWS2000を使っています。環境的には問題が無いと思っています。 何か良い知恵がある方いらっしゃれば宜しくお願い致します。 (内容) sheet1・sheet2・sheet3にそれぞれ、3000行の表があります。 三つの表には、受注番号と言う名前の識別項目が、それぞれ1列だけ用意されています。表は受注番号順にソートしています。 マクロはsheet1のある行の受注番号を見て、それと同じ受注番号をsheet2から検索して、該当する行を求めます。次にsheet2の受注番号からsheet3の受注番号を検索して、該当する行を求めます。 (実際にはもうちょっと複雑ですが・・・) 遅い部分を調べて見ますと、3000行の表から該当する行を検索する部分に時間が掛かっている所までは分かっています。 先頭行から順じ見に行って該当する行が見つかったら検索終了するようにはしています。 また、データの存在しない行を見に言ってはいないようです。 (検索部分はこんな感じです) For Each objA In Worksheets(Sheet2).[A:A]   If objA.Text Like 受注番号 Then    intStr = objA.Row   End If   If objA.Text > 受注番号 OR objA.Text = ""Then    Exit For   End If Next Accessなどのデータベースを使えと言われそうですが、excel内で処理すると言う絶対条件がありますので、苦慮しております。 このようなご経験のある方宜しくお願い致します。

  • Excel 2007 マクロ 表の貼り付け

    Excel 2007 マクロ 表の貼り付け Excel 2007 マクロ 表の貼り付けについて教えてください。 <Sheet1>の表にあるA2からD4を <Sheet2>に値貼り付けをします。 表は画像を添付します。 マクロの記録では下記内容になります。 Sub Macro1() ' ' Macro1 Macro ' ' Range("A2:D4").Select Selection.Copy Sheets("Sheet2").Select Range("A2:D4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub <Sheet1>のA列の行の増減にかかわらず、<Sheet2>に貼り付けることができるように するにはどのようにマクロを修正すればよろしいでしょうか。

  • Excelのマクロについて

    エクセルのまくろについて教えてください。 私が今やろうとしているのはsheet1に表を作成し、sheet2に見積書を作成します。 見積書に載せる項目はsheet1の表の中から抽出したいです。 そのときの条件としては、sheet1での表の中の計算結果が、  項目  計算結果   A    1   B    0   C    8 このような場合のときに計算結果が「0」になったものの項目はsheet2の見積書の項目には反映しないようにしたいです。 このようにするとsheet2での見積書は作成する条件によって行数が変わるようになります。 なので、自動的に見積書の行を増やしたりなくしたりするようなマクロを組みたいのです。 Excel2000です。 長々と書きましたがよろしくお願いします。