マクロで表の一部を書き換えたい
- 指定したセルを入力してマクロを実行すると、表の一部を書き換えることができます。
- 条件に従い、管理番号が存在するか、そして使用状況が未使用かを確認し、書き換えます。
- 入力した管理番号が既に使用になっている場合や、表に存在しない管理番号を入力した場合はエラーメッセージを表示します。
- ベストアンサー
マクロで表の一部を書き換えたい
A列に購入日・B列に管理番号・C列に使用状況・D列に使用日と言った表が有るとして、指定したセル(例えばE5に管理番号・E6に使用日)を入力してマクロを実行した時に表の一部を書き換えたい。 A列は条件から外しても良いと思いますので以下の説明は省略します。 表には 管理番号 使用状況 使用日 1001 未使用 (空白) 1002 未使用 (空白) 1003 未使用 (空白) 使用日を1月1日・管理番号を1002と入力した時に 管理番号 使用状況 使用日 1001 未使用 (空白) 1002 使用 1月1日 1003 未使用 (空白) と書き換えたい。 条件は、まず表の中に入力した管理番号が有るかの判別し無ければエラーメッセージを返して終了、次に入力した管理番号が既に使用になっていないかを判別し使用になっていればエラーメッセージを返して終了、この2つの条件を満たした時に表を書き換えて完了。 解り難い説明で申し訳ありませんが、よろしくお願いします。
- nepros
- お礼率100% (2/2)
- Visual Basic
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
1.「検索セル」は、変数名です。 2.書き換えマクロは、次のとおり。 Cells(検索セル.row,2)="使用" Cells(検索セル.row,3)=Cells(6,5)
その他の回答 (1)
- toshi_2000
- ベストアンサー率30% (306/1002)
マクロは以下の通り。 Set 検索セル = Range("A:A").Find(Cells(5, 5)) If 検索セル Is Nothing Then MsgBox "ERROR" End Else If Cells(検索セル.Row, 2) = "使用" Then MsgBox "ERROR" End Else '書き換え(省略) End If End If
お礼
回答して頂き誠にありがとう御座います。 検索セルを具体的な式で書いて頂ければ助かるのですが、それと書き換えの式を省略なしで教えて頂けないでしょうか? 素人過ぎて済みません。
関連するQ&A
- マクロや関数で来店管理表を作成したい。
最終来店日別・顧客番号順の管理表を作成したいと考えております。 表1・初日データ 行番号 列番号 G 列番号 H 顧客番号 最終来店日 6 100 2011-11-09 7 30 2011-11-09 8 500 2011-11-09 9 200 2011-11-09 10 ~ 1000 表2・2日目データ 行番号 列番号 G 列番号 H 顧客番号 最終来店日 6 150 2011-11-10 7 500 2011-11-10 8 10 2011-11-10 9 ~ 1000 表3・来店日管理表 行番号 列番号 B 列番号 E 列番号 F 顧客番号 最終来店日 来店回数 6 10 2011-11-10 1 7 150 2011-11-10 1 8 500 2011-11-10 2 9 30 2011-11-09 1 10 100 2011-11-09 1 11 200 2011-11-09 1 12 ~ 1000 ●〔表1〕・〔表2〕のデータから、〔表3〕のような〔来店日管理表〕の作成方法を教えてください。 1・初日 1・初日に〔表1〕のデータを〔表3〕に表示し、〔列番号 F〕に来店回数を〔1〕と表示する 2・〔最終来店日〕別・〔顧客番号順〕に表示する 3・〔表1〕のデータを消去する 2・2日目 1・〔表3〕のデータと〔表2〕のデータを統合して、初来店者は〔列番号 F〕に来店回数を 〔1〕と表示する 複数回来店者は、〔列番号 F〕に来店回数を〔前回回数+1〕して表示する 2・〔最終来店日〕別・〔顧客番号順〕に表示する 3・〔表1〕のデータを消去する 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセル マクロを使った表について
エクセル初心者です。マクロを、教えていただけませんか。 シート1:入力シートです。 例えば以下のような表があります。 月 1日 2日 3日 4日・・・31日 個別物件名1 A B C 空白 D 個別物件名2 E 空白 空白 F 空白 個別物件名3 空白 G H 空白 I シート2:シート1のリンクシートです。 月 1日 2日 3日 4日・・・31日 個別物件名1 ○ ○ ○ 空白 ○ 個別物件名2 ○ 空白 空白 ○ 空白 個別物件名3 空白 ○ ○ 空白 ○ 上記のようにシート1には毎月、ある決まりに沿ってアルファベットを 入力するのですが、入力し終わったら(入力と同時でも構いません) シート2には、そのアルファベットを入力してある位置に印として ○を打ちたいんですが、どのように組んでいけばよいのか解りません。 すいませんが、ご教授ください。よろしくです。 補足 ・シート1とシート2の表の書式はまったく違うため、貼り付けは できません。 ・結局は、シート1のあるセルに文字が入力されると自動的に シート2のセルに○の印がつき、上記表で言えば、反映回数?は 9回ですが月によって反映回数は変わります。(入力と同時の場合) 説明が下手ですいませんがよろしくお願いします。
- 締切済み
- オフィス系ソフト
- エクセルマクロで注文表を作成したい
最大約5000件の注文表を作成において、マクロを使用して簡易化したいと思っています。 基本的には連番と枚数だけを業者に知らせるシンプルな注文表なのですが、以下のことをマクロで組みたいです。 (1)注文番号と注文枚数をピボットで集計したあと、A4(8列25行)雛形の表に注文のあった番号だけ枚数を入力したい。(注文のない番号も空白で必要だそうです) (2)ヘッダーをわざわざ設定を開いて変えるのではなく、シート上に作成したテキストボックスに入力するだけで、変更できるようにしたい。 (3)次回、集計するときのために雛形の枚数部分だけをボタンを1クリックするだけで削除したい。 注文は手書きでくるため、注文番号+枚数を入力するだけでも かなりの作業になるのです。ということで皆様の知恵をお借りできればと思います。マクロは初心者ですが、どうぞご指導のほどよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 【Excel VBA】複数の条件を満たすデータを行削除
Excel2003を使用しています。 ある表の中のデータで、次の4つの条件を満たすデータを行削除したいのですが、マクロではどのように書いたらいいのでしょうか? E列…データが入力されている F列…空白 G列…空白 H列…空白 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルで表のある列を最初から最後まで選択するマクロ
今現在、シートにA3:E700までの大きな表があります。 中のデータは文字列や数値です。 A列B列には途中に空白はありません。C~E列には空白もあります。 この表のB列だけを選択するマクロを書きたいのですが、データは日々増減するため最終行が特定できません。 どのように書けばいいのでしょうか?
- ベストアンサー
- オフィス系ソフト
- マクロを使って文字が入力されたセル数を数える
マクロを用いて、文字が入力されたセル数をカウントしたいと考えていますがうまくいかず悩んでおります... 具体的には、セルB1からB1000にデータが入力された場合、左隣のA列に1から番号を付したいと考えています. B列が空白のままの行は、A列も空白にしておきたいです. (セルB1からB1000まで全てにデータが入力された場合、A1からA1000には1から1000までの番号が入る) また、A列に付された番号を判断し、100番毎にA列からE列までセル背景を色分けしていきたいと考えています. (B列が空白ならxlNoneでその行は無色のままにしたい) セル背景の色分けだけであればうまくいったのですが、B列の入力状況により自動でA列に番号(数字)を変化させたら思い通りに動かず困っています. ご教示、宜しくお願いします.
- ベストアンサー
- その他(Windows)
- エクセルのマクロ
A列にアルファベット、B列からE列まで数字が入力されている表があります。 A1から順に(A1→A2→A3→・・・)、A列の文字を調べてそれが"A"であった場合のみ、同じ行のB列からE列の最大値をF列に、最小値をG列にコピーする(A列の文字が"A"以外の場合は何もせず下の行を調べる)、ということを繰り返し、A列が空白になった時その作業を中止する、というマクロを作りたいのです。 もちろん、一つの表だけならA列で並べ替えをして関数を使えば簡単にできますが、表がたくさんあるので自動化したいと思います。 マクロに関してはまったくの初心者なので、お知恵をお借りできればうれしく思います。
- ベストアンサー
- オフィス系ソフト
- エクセルのマクロでこういう場合は?
エクセル97です。 Sheet1の E3:J29 に表があります。 E列、F列は文字列、G列は数値、H~J列には式が入っています。 この表の G列の値が空白や0でない行だけをコピーして、Sheet2 のB2 以下に切れ目なく表の「値」を貼り付けるにはどうのようなマクロを書けばいいのでしょうか?(G列が空白や0の行はSheet2の表では一切無視され、空白行ができないようにしたいのです。) よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- (エクセル)表から1列の別表をつくりたい。
表に入力されたものを1列に並び替えをしたいのです。(エクセル関数) エクセルの表から、セルに入力された情報を抜き出し、並び替えたいのですが、行き詰ってしまい質問させていただきます。 (やりたいこと) 添付資料のように、事業所ごとに購入した物品が日付ごとに入力されていきます。この表を一列で並び替えることを したいのですが、現状の表の形で1列に抜き出すやり方が思い浮かびません。ひとつずつリンクを設定していけばいいですが、 それですと、空白のセルができてしまうこともあり、空白を消すためにフィルタをやらなくてはいけず、なんとか関数でどうにかできないと質問させていただきました(つまり空白のセルは飛ばし、隙間のない1列の表に変換したいです)。 (試したこと) (1)vlookup関数を使うために、日付の横に検索列を作ってもみましたが、同じ行に複数の抜き出すべくものがあると、 if関数のネストをいれるにも「if(c5="","",vlookup(v5,b5:r10,2,fasle)」みたくやってみましたが、c5までは取り出せても、 d5,e5,f5・・・と右にずらしていく関数式が思い当たりません。 (2)種類、数量データ入力されている全てのセルの横に(1.2.3.4.5.6.7.8.9.・・・)と数字をいれて検索列をつくり、vlookupとmatch関数の 組み合わせも試しましたが、vlookup関数の性質上、複数列に検索値(「vlookup(検索値,範囲,列番号,検索の型)」)が存在しているとこれも出来ず。 説明が不十分な点もあると思いますが、よろしくお願いいたします。もし、VBAでなければ難しいとのことでしたら、どのようなVBAを組めばいいかもお願いいたします。
- ベストアンサー
- オフィス系ソフト
お礼
本当にありがとう御座いました。 お陰さまで行き詰ってた管理表が完成に近づきました。