• 締切済み

自動書込と、自動ページ送り

ド素人なので上手く伝える事が出来か分かりませんが、お伺い致します。 エクセルVBAを利用して行いたいのですがVBAがなかったのでVBの所で質問致します。 office2000を使っています 色々参考書を見たのですが載っていなかったので質問致します。 A1に数字を入力しその数字より1大きい数字がB1へB1より1大きい数字をC1へ出力します。ここまでは誰にでも出来る事ですが。 C1=B1+1から100まで出力し、100になった時点でB1が1プラスされる。B1がプラスされると元々C1の再下位の数字より1増える、これはA列も同じで、それを200行書き込んで10列ずれて又続きを出力し。又200行後今度は次ページA1~C1へ出力これを繰り返し98,99,100になるまで連続出力したいのですがどうすればいいのか全然です。 例 A1 , B1 , C1 ; J1 , K1 , L1 1 , 2 , 3 ; 1 , 3 , 95 1 2 4 1 3 96 ・ , ・ ,  ・    ;・  ,  ・  , ・ 1 , 2 , 100 ; 1 , 99 , 100 1 , 3 , 4 ; 2 , 3 , 4 上記のように数字を出力したいのですがこの説明で分かりますか? 今回A1を1から始めていますが、1ばかりでは無いので 又MAXも100としていますが、MAX100ばかりではありません。がとりあえず例として書きました。 多分やり始めの私のしては参考書飲み方も良く理解できていないのでしょうね。全然分かりませんでした。 全部お願いって言うのは簡単ですがそれは、Q&Aに反していると思いますので要所要所のヒント又例文を教えて下さい。 よろしくお願いします

  • g63b
  • お礼率50% (1/2)

みんなの回答

回答No.2

さっきのやつ、終了条件入れる場所間違えました。 無限ループになってしまいます。 do while (条件) にするか、ループ中に終了条件入れてください。

回答No.1

大雑把だけどこんな感じかな? 質問主さんの例だと2列目が99で終わってるけど100にしてみた。 Dim x As Integer '左 Dim y As Integer '中 Dim z As Integer '右 Dim row As Integer '行カウンタ Dim col As Integer '列カウンタ Dim intSheet As Integer 'シートカウンタ Dim blnNextPage As Boolean '次シートフラグ '初期値セット x = 1 y = 2 z = 2 row = 0 col = 1 intSheet = 1 Do While (1) 'zカウント z = z + 1 If z > 100 Then 'zが100以上ならy+1 y = y + 1 If y > 100 Then 'yが100以上ならx+1 x = x + 1 '終了条件 If (x = 99 And y = 99 And z = 100) Then Exit Do 'y初期化 = x+1 y = x + 1 End If 'z初期化 = y+1 z = y + 1 End If '行カウント row = row + 1 If row > 200 Then '200で次の列か次のページへ If blnNextPage Then '行・列カウンタ初期化 col = 1 row = 1 '次のシートへ intSheet = intSheet + 1 '次のシートが無い場合は追加 If intSheet > Worksheets.Count Then Sheets.Add After:=Worksheets(Worksheets.Count) End If 'シートをアクティブに Worksheets(intSheet).Select 'フラグ消去 blnNextPage = False Else '次の列へ col = col + 10 row = 1 blnNextPage = True End If End If 'データ表示 Worksheets(intSheet).Range(Chr(64 + col) & row).Cells = x Worksheets(intSheet).Range(Chr(64 + col + 1) & row).Cells = y Worksheets(intSheet).Range(Chr(64 + col + 2) & row).Cells = z Loop

g63b
質問者

お礼

うひゃ~一杯書いてくれてる ありがとうございます 明日検証してみます。参考書で見たこと書いてますが、今の私にとっては何が何やら。 参考書とにらめっこで考えながらやってみます

関連するQ&A

  • VBAのプログラムに関してです

    VBAに関する質問です。 いま、A列に0~4の数字が順番に繰り返し記入されていて(数字の数はランダム)、B列に適当な値が記入されています。A列の中から1を探しだして(1つ上の行の数字が0)、 その行から1つ戻ったB列の値をC列に記入、A列の次の0~4の繰り返しで同じ条件の1を探してその行から2つ戻ったB列の値をD列に記入する。といったことをA列が空白の行になるまで繰り返し行うというプログラムを教えてほしいです。お願いします。 例) A:00011112233400001123334400011111122233400000- B:12345678912345678912345678912345678912345678- となってるA列のそれぞれの0~4の塊の最初の1をさがしてそれに対応するBをそぜぞれ求めていくというものです。 この場合だと実行結果C・D列には C:379 D:688 となってほしいです。

  • プラスマイナスで比べる関数。

     初めまして、よろしくお願いします。 このような表で    A   B   C   D   E   F 1    2 5 -3  2 -1 3 2 -4 -4  2 412 -8  5 -3 5 7 -5 -3 -4 6 3 -2  3  1 7 6 -1  6  5 Aにはプラスの数字が、B列にはマイナスの数字が入ります。C列の数字がプラスならばB列の数と比べ、マイナスならばA列の数と比べて、Dに Cがプラスならば  C+Bの数字 Cがマイナスならば  C+Aの数字、ただし”3行”のようにA<-(C)の場合はプラスに条件付きで表示できるようにしたいと思います。  良い関数表示をご存じでしたら、よろしくお願いします。

  • エクセルでこんな事出来ます?

    エクセル2000で教えて下さい。 ABCDの列に任意の数字が入ります。 例えば     A   B   C   D 1  -10 -20 -30  60 2   50 -30  0  -20 3   10  30 -25 -15 のように同じ行で4つのセルをプラスマイナスすると等しくなります。 数値の入力は小さい数字(マイナスの大きい数字)から順番に入力されていきます。 最後に一番大きい数字が入るように式を入れたいのです。 例で言うと1行目ではD1、2行目ではA2、3行目ではB3の答えが自動で入るようにしたいのです。 列は4列のみです。マイナスの数値は最低でも1つ入ります。   

  • VBA特定セルの条件で同じ個数ずつ文字入力

    Excel VBAの初心者です。    A   B   C 1  011       0.5 2  012 3  013 4 行の総数は下に向かって700行くらいありますが、64行ごとにひとかたまりであることが分かって いるデータがあります。隙間はありません。またB列は空白です。 このB列にC1の数値を元に64行ごとに一定のステップで数値入力できるコードを作りたく思って います。例として、B列はB1から0,0~と同じ数字が縦に64個つながり、B65からは0.5,0.5~と縦に 同じ数字が64個つながり、A列がなくなるまで繰り返し自動で入力したいのです。 何分初めてなものでよく分かりません。どなたかサンプルコードを教えて頂けないでしょうか。 よろしくお願いします。

  • あるセル列内に任意の文字列があった場合の自動処理

    VBAを利用して、あるセル列内にある文字列があった場合に その文字列が存在した行のAセルからCセルまで自動的に 背景色をグレーにしてくれるような動きをしたいです。 簡単に言うと、「作業完了」の文字列があったらその行をグレーするイメージです。 参考例として、セルC列に対してその列内のあるCセル列に 文字列"@"が入力された場合、その行のA行からC行まで 自動的に背景色を変更したいです。 また、"@"が入力されていない場合は、元の背景色に戻るようにしたいです。 ■ 例1:C2に"@"が入力されるパターン 【入力前】  | A | B | C | -+---+---+---+- 1|   |   |   | -+---+---+---+- 2|   |   |   | ← 当然何も変化なし -+---+---+---+- 3|   |   |   | -+---+---+---+- 【入力後】  | A | B | C | -+---+---+---+- 1|   |   |   | -+---+---+---+- 2|////|////|/@/| ← ← C2に"@"が入力されるとA2~C2までの背景色をグレーに変更。 -+---+---+---+- 3|   |   |   | -+---+---+---+- 【削除】  | A | B | C | -+---+---+---+- 1|   |   |   | -+---+---+---+- 2|   |   |   | ← C2の"@"を消すと入力前に戻る。(元通り) -+---+---+---+- 3|   |   |   | -+---+---+---+- 任意の文字列をきっかけに自動実行するようには出来たのですが それから先がさっぱりで困っています、、、。 よろしくお願いします。

  • 関数中にセルに入力した値を反映させて計算を行いたい

    こんにちは Excelを用いた計算を行っているのですが 自分の知識では出来なかったために皆様の知恵を借りたいと思っています Excelで単純な足し算を行いたいのですが とあるセルに入力した値によって計算範囲を変更したものを作りたいと考えています 仮にA行1列からA行20列まで各セルに1,23…20と順番に1つの数字が各セルに入力されていたとします この時, B行1列のセルに5という数字が入力されていたら C行1列にA行1列数字とA行5列の数字の和が入力される (イメージとしたら結果として1+5より6が出力される) B行1列のセルに10という数字が入力されていたら C行1列にA行1列数字とA行10列の数字の和が入力される (イメージとしたら結果として1+10より11が出力される) ような関数を作りたいと考えています 自身の甘い考えで B行1列のセルに5という数字が入力されていたら C行1列にA行1列数字とA行5列の数字の和が入力されるのは C行1列に=A1+A(B1)と入力したら出来るのではないかと考えていたのですが どうもできないみたいです なにか方法等浮かぶ方がいらしましたら回答をお願いします

  • 教えてくださーい

    列A____列B____列C____列D____列E 行1   ____100____200____300____400 行2 10____1.1____2.1____3.1____4.1 行3 20____1.2____2.2____3.2____4.2 行4 30____1.3____2.3____3.3____4.3 行5 40____1.4____2.4____3.4____4.4 と言った表があるとします。(かなりいい加減ですが) 行1にある数字(100/200/300/400)のどれかを 列Aの行6に入力するとします。 列Aの数字(10/20/30/40)のどれかを 列Bの行6に入力するとします。 そうした時に、上記の数字が表内で交わる数値を 列Cの行6に抽出したいのです。 例としては、A6に300/B6に30 を入力すると C6には"3.3"が表示される。と言った様にです。 VLOOKUP式で可能なのでしょうか?

  • ドラッグしても数式が正しく表示される方法

    Excelで、例えばA,B,C列の幾つかの数字をそれぞれ全部足して、その結果がA列10行=5、B列10行=10、C列10行=20だったとします。 この結果に対して別のセルに入力してある係数(例えば、X列1行にある「0.1」という数字)をかけて結果を出力してみようと思い、以下のような数式をA列11行書きました。 =A10*X1 この結果をB列(B列11行)とC列(C列11行)に適用させようと思い、A列11行をドラッグしたところ、B列とC列の式がそれぞれ、  =B10*Y1 と =C10*Z1 と表示されるので、B列とC列は正しい答えが出ません。 どのようにすれば、ドラッグした状態でも数式が正しく表示されますか?

  • エクセルの列間の検索方法を教えて下さい

    A列 B列C列 0ーー 1ーー1 0ーー 2ーー0  1ーー 3ーー0 0ーー 4ーー0 2ーー 5ーー4 0ーー 6ーー0 0ーー 7ーー0 0ーー 8ーー7 0ーー 9ーー0 7ーー10ーー0 0ーー11ーー0 2ーー12ーー11 0ーー13ーー0 0ーー14ーー0 0ーー15ーー14 1ーー16ーー0 0ーー17ーー0 0ーー18ーー0 0ーー19ーー18 0ーー20ーー0 0ーー21ーー0 16-ー22ーー21 0ーー23ーー0 0ーー24ーー0 0ーー25ーー0 5ーー26ーー25 5ーー27ーー0 0ーー28ーー0 0ーー29ーー0 0ーー30ーー29 0ーー31ーー0 0ーー32ーー0 2ーー33ーー32 0ーー34ーー0 0ーー35ーー0 39-ー36ーー36 ・・・・・37行~1000行位あり(ハイフンはデータが乱れる為参考に入れました、本来は不要です) 上記のA列、B列、C列の3列共にに有効数字「0」以外がある3行をカラー表示をしたい。 上例では、B列の5行、12行、22行、26行、33行、36行目の3列をカラー(例:黄色) 表示をする方法があれば教えてください。 又、最終行にカラー表示行の合計個数(上の例では6個)が集計出来れば幸いです。 大変ご無理申しますが宜しくお願いします。 PCkizuna24110 拝

  • エクセルの質問。同じ数字なら違う列の数字を返す

    エクセルについて質問です。 A列は数字が入力されていて、B列はある数字があります。C列にB列と同じような数字を入力していきます。入力したC列の数字が、B列の中にあれば、入力した行にA列の数字をD列に返すことは出来ますか?下記に例を記載します。 A     B     C       D 0   20110210   2010811       1   20110214   20101025   2   20110215   2011111    7 3   20110216   2011322  4   20110217   2011516   6   20110221   2011325   7   2011111    20101220   8   20050223   2011128   宜しくお願いします。