- ベストアンサー
このようなVBAを作りたいのですが
imogasiの回答
- imogasi
- ベストアンサー率27% (4737/17068)
質問では1が所定回数加わると、初めからのデータを別シートへ写すような表現になっている。実例では前回移した以後のこれまでのデータになっている。たぶん実例の方だろう。 ーー これはA列に1が所定回数入力されたら、すぐに所望の処理をするのを希望ですか。 こんな、回答者にパズルを解かす(本質問は課題の丸投げタイプですよ)ような方式をやめて、データが全部入力し終わったら、処理する(バッチ処理)か、A列で 所定回数だけ1が現れたら、(COUNTIF関数でセルに1の件数をだし、気づいて)、処理のコマンドボタンを押すとかが良いのではないですか。処理が重くなったりチェンジイベントは扱いにくいと思うが。
関連するQ&A
- どのようなVBAを書けばよいでしょうか
以下のような表があります。 (sheet1) A列 B列 続く… タイトル1 タイトル2 … (←一行目にタイトル) 13 5 (←二行目から数字がランダムに) 18 14 44 33 36 87 22 11 14 14 27 24 21 39 32 62 35 5 44 4 12 3 (以下続く。各列が何行で終わるかもランダム) 「各列の数列の平均と分散」「列全体を含めての平均と分散」 を、新たなシートに書き出したいのです。 上の例からすると、 (sheet2) A列 B列 C列 平均 分散 (←一列目) タイトル1 ?? ?? (←二列目から結果を) タイトル2 ?? ?? … 全体 ?? ?? のような感じです。 データの量が多いので、手作業で関数を使っていては、莫大な時間を要してしまいます。 どのようなVBAを書けばいいのでしょうか。 分かる方、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- どのようなVBAを書けば良いのでしょうか
以下のようなデータがあります。 ?の部分はランダムな値が入っていると考えて下さい。 A列 B列 C列 D列 E列 F列 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 「 「 「 「 「 「 ? ? ? ? ? ? ? ? ? ? ? ? 」 」 」 」 」 」 ? ? ? ? ? ? ? ? ? ? ? ? 「 「 「 「 「 「 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 」 」 」 」 」 」 ? ? ? ? ? ? 以下不規則にデータは続く このデータの「」と「」内のデータを消したいのです。 正確に言えば、セルを削除して、上方向にシフトしたいのです。 つまり、上の例からすると A列 B列 C列 D列 E列 F列 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 以下不規則にデータは続く のような形に加工したいのです。 ただセルを削除して、上方向にシフトするには、 オブジェクト.Delete Shift:=xlShiftUp を使えば良いことまでは分かりました。 しかし、求める形にデータを加工するには、どのような制御構造を書けば良いのか、正直手詰まりです。 VBA初心者のため、アイデアに限りがあって…。 分かる方、お手数をおかけしますが、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAの入力について
"Sheet1"のA1、C1、F1、G1の値(計算結果のみ)すべてコピーして、 貼り付ける場所が"Sheet2"のA1:Z10の範囲内で、 A1はB列、C1はG列、F1はH列、G1はZ列の空白セルに上詰めで貼り付ける。 なおF、G、H、Z列以外の列には値が入力されていたり空白もあります。 また同時に、 "Sheet1"のA1、C1、F1、G1の値(計算結果のみ)の内でA1とF1のみコピーして、 貼り付ける場所が"Sheet3"のC1:Y10の範囲とC13:Y23範囲内で、 A1はC列、F1はY列の空白セルに上詰めで貼り付ける。 なおC、Y列以外の列には値が入力されていたり空白もあります。 またC11:Y12の範囲内にはすべて値が入力されています。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- どうVBAを書けばいいのでしょうか
以下のような表があります。 (sheet1) A列 不規則な数列(←一行目にタイトルが書き込まれています) 13 (←二行目から数字がランダムに書き込まれています) 18 44 36 22 14 27 21 32 35 44 12 (以下続く) Case1[i行の値よりi+1行の値が大きく、i+1行の値よりi+2行目の値が大きい件数] Case2[i行の値よりi+1行の値が大きく、i+1行の値よりi+2行目の値が大きく、i+2行の値よりi+3行目の値が大きい件数] などの件数を、新たなシートに書き出したいのです。 上の例からすると、 (sheet2) A列 B列(←B列に件数を書き込む) Case1 3 Case2 1 のような感じです。 if文で作ってみたのですが、うまく処理してくれません。 どのようなVBAを書けばいいのでしょうか。 分かる方、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 【VBA】特定の条件でセルをコピー
VBA初心者です 特定の条件を満たすセルの隣接する指定のセルをコピーして別のシートへ貼付けたいです 【sheet1】 A B C ~ F G 1 2 あ ~ 3 あり 2 1 い ~ 7 なし 3 2 う ~ 4 あり 5 3 え ~ 6 あり 6 2 お ~ 5 なし 7 1 か ~ 3 あり 8 3 き ~ 7 なし 9 2 く ~ 8 なし といったデータのうち、G列が「あり」の行の C~Fの値を別のシートへ以下のように貼り付けたいです 【sheet2】 A ~ D E あ ~ 3 _ う ~ 4 _ え ~ 6 _ か ~ 3 _ 全くの初心者です よろしくお願いします
- ベストアンサー
- Visual Basic
- Excel VBA で検索 → 検索結果をsheetに書込む
データが以下のようにランダムにA列のみに『A65536』までずら~っと並んでます。 ・ ・ R:F7090006000C9129 S:06 R:4C S:06 R:F23404AA 16:56:08 S:06 R:F50A0000008807 S:06 R:F50A00010053D3 S:06 ・ ・ この中の検索条件は *F50A* 『F50A』を含む情報を持つセルを 全て抜き出して、sheetに書き込む。 ※書込み先のsheetは、新しいsheet,既存のsheet どちらでも構わない。 アドバイス宜しくお願い致します。
- ベストアンサー
- Visual Basic
- excel 別シートへのデータの転記
sheetが二枚あります。 sheet1 元データ sheet2 転出先(三種類あります) sheet1のA列に〇がついていたらsheet1Q列のシート名を見て、 転出先に同じデータがあるか?無ければ新規作成をするか? 新規作成をする場合には以下のように、 そのシート名の各セル番地にデータを転記。 sheet1のA列2行目移行同じ繰り返しで○があるか見に行く。 sheet1の1行目は項目名になります。 A2に○が付いていてQ列のシート名が100だった時 A2のデータを以下のように。 sheet1 sheet2(シート名は100) P列の値 → A7へ C列の値 → A8へ H列の値 → A9へ I列の値 → A10へ F列の値 → E5へ L列の値 → D6へ M列の値 → D7へ K列の値 → F9へ J列の値 → D8へ 続けてA4に○が付いていてQ列のシート名が100だった場合。 sheet1 sheet2(シート名は100) P列の値 → A12へ C列の値 → A13へ H列の値 → A14へ I列の値 → A15へ F列の値 → E10へ L列の値 → D11へ M列の値 → D12へ K列の値 → F14へ J列の値 → D13へ 以上のようなことがしたいのですが、 参考書でサンプルなどを見てやっているのですが、 なかなかうまくいきません。 コードのご教示をお願いたします。
- 締切済み
- オフィス系ソフト
- VBA 他シートを参照しているセルのコピー
お世話になります。 以下のシートがあります。 [sheet a] A B C D E 1 2004 2005 2006 2007 2008 2 =b!A2 =b!C2 =b!E2 =b!G2 =b!I2 3 10 15 16 4 11 4 12 30 20 9 2 5 =SUM(A3:A4) =SUM(B3:B4) =SUM(C3:C4) =SUM(D3:D4) =SUM(E3:E4) [sheet b] A B C D E F G H I J 2004 2005 2006 2007 2008 1 あ1 い1 う1 え1 お1 か1 き1 く1 け1 こ1 2 あ2 い2 う2 え2 お2 か2 き2 く2 け2 こ2 ・・・・・・・・・ [sheet a]F列以降に入れるデータは、VBA(マクロ)を使って、別のブックから取り出しています。 (例) F1…=E1+1(E1の数式をコピー) F3,F4…任意の値(別のブックからコピー) F5…=SUM(F3:F4)(E5の数式をコピー) 1行目,5行目の場合は左のセルをコピーして数式を貼り付けると、列が自動的に列が変わりますが、2行目の場合は元のシートを1行おきに参照しているので、単純にコピーしただけでは正しい数式が入りません。 2行目の参照をVBAで作るには、どのようにしたらいいでしょうか。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAでデータ検索(Win2000,Excel2000)
エクセルで毎日の業務で手計算している作業をVBAコードかいて試しているのですが、縦と横の検索で行き詰まってしまい質問しました。どうぞよろしくお願いします。 _A__B____C____D__E__F___G___H 1| 2|_______その他_1~3_4~6_7~10_11~20_21~30 3| 3|__項目A___ 0___50__49__46___43__40 4|__項目B___ 0___45__44__39___37__34 5|__項目C___ 0___43__42__34___30__ 28 行 *このデータは現在(B3:V42)にあり今後増える可能性あり *1行目とA列は空白です。 *2行目とB列は対応する項目です。 *3行目は関係ない値が入っています(データをつくる為の値) このようなデータが、"Sheet2"にあると仮定します "Sheet1"のシート上に配置したComboBox(コントロールツールボックスの)に検索値があります。 (ComboBox1 → 数値 , ComboBox2 → 数値 , ComboBox3 → 文字)*リストは"Sheet1"に登録してあります。 TextBox1 ÷ 2 の結果を小数点以下切上げし、これにTextBox2の値をかけたもの(仮にAAAとする)が、2列目のそれぞれのセルの数値範囲に対応し、TextBox3の文字列がB列に対応し、両検索結果の交わったセルの値を返すようにしたい。 例)もしAAAが「8」なら「F列」をみる。TextBox3 の文字列が「項目B」なら「4行目」をみる。この結果、交わったセルは「F4」なので、「F4」にある値「39」を"Sheet1"."A1"に返す。 また、これらコンボボックス(このシートとは別にテキストボックスを使うこともある)にはひとつずつchangeイベントでいきなり別シート("Sheet3")に書くコードが既に書いてあります。このセルから取り出すことも可能です。よろしくお願いします。
- 締切済み
- オフィス系ソフト