たっぴ(パソコン質問掲示板)

ログイン

メニュー
■ トップ
■ 質問する
■ 回答を見る・回答する
■ 参加者のひろば / テーマ別
■ コミュニケーション道場
■ 「たっぴ」の使い方
■ 「たっぴ」のルール・心得

エキスパート トータルランキング
Rank ニックネーム E-Point
1 位 sriver 1372 p
2 位 げんき(^^)/ 810 p
3 位 うにゅ 607 p
4 位 mory 512 p
5 位 saru 510 p
6 位 Clark 481 p
7 位 taknt 474 p
8 位 459 p
9 位 あき◆ 387 p
10 位 おやぢ 366 p
※月間ランキング参加者がありませんでした。



E-Point還元プログラム
E-Point 月間獲得ポイントより回答者様へ現金を還元いたします。

対象還元金額
全員に(E-Point)×20円
支払いは5,000円以上からとなります。
還元金の支払いはご指定銀行口座への振込みとなります。

『マナーの良い質問者』マーク
以下の条件を満たす質問者様には
  『マナーの良い質問者』マーク

が付きます。
  1. 登録していて
  2. 「終了」していない質問がひとつ以下で
  3. 終了した質問で「○○○○○」という言葉の投稿がある
3番目の条件はひらがなです。もうお判りですね。(漢字、カタカナもOKかも。。。)
ぜひマークをGetしてください。









《戻る

No.質問・回答おれい
[82604] シートを分割したい
OS: Windows 2000
ソフトウェア名/バージョン:Excel2000

お世話になります。

a 1
b 3
c 5
d 2
e 4
f 8
g 9




という1つのシートがあるのですが、
右の合計が5を超えた時点で違うシートにしたいのです。

sheet1
a 1
b 3

sheet2
c 5

sheet3
d 2
e 4

sheet4
f 8

sheet5
g 9




こういうことってマクロや、プログラムでできるますでしょうか?
できるのであれば、教えてください。

P.S. csvファイルに出力して
awkでやってみようかと思いましたが、挫折しちゃいました...
ようすけ   2006年7月3日15:17


[82605] すいません、sheet1が5を超えていませんでした。

sheet1
a 1
b 3
c 5

sheet2
d 2
e 4

sheet3
f 8

sheet4
g 9




とさせたいです。
よろしくお願いします。

あ、さらにできるますとか書いちゃってますね...
ジタバタしちゃって申し訳ないです。
ようすけ   2006年7月3日15:22


[82606] VBAを使えば、そう難しくないコードで出来ますけど。

このデータがSheet1のA列に1行目から入っていて、必ず0より大きい、
Sheet2からの必要なシートは全部出来ている・・・と仮定して。

Sub TEST()
A = Selection.Value
B = 2
Do Until Selection.Value = 0
R1 = Selection.Address
Do
Selection.Offset(1).Select
A = A + Selection.Value
Loop Until A > 5
R2 = Selection.Address
R3 = R1 & ":" & R2
Range(R3).Copy
Sheets("Sheet" & CStr(B)).Select
Range("A1").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Selection.Offset(1).Select
A = Selection.Value
B = B + 1
Loop
End Sub

こんな感じのコードで出来ると思います。キモはSelection.addressで
加算開始と終了のセル位置を取得しておくことです。

起動時、Sheet1のA1を選択していれば、これで行けると思いますが、
検証はちゃんとやっていないので、上手く行かないかも知れません。

mory (512)    2006年7月3日16:13


[82609] moryさま

ご回答ありがとうございます。

> Sheet2からの必要なシートは全部出来ている・・・と仮定して。
ココなんですが、できていません。
A列が10000件を超えている状況でして、大体96sheetかなって
いう数値は出ているのですが、
これをコピペでなく分割する方法がないかなと模索している次第です。
ようすけ   2006年7月3日16:31


[82616] 私は思うのだが、スレ主はなぜプログラミング関連のメーリングリストに
登録しないのかな、と。 掲示板で単発な質問するよりも、いろんな情報が
入手できたりすると思うのだが。

MLの場所によっては「学校の宿題をMLで聞くな!自力で解け」と辛辣な回答を
よこす所もあるようですが。
Question (未登録)   2006年7月3日18:07


[82666] Sheets("Sheet" & CStr(B)).Select
のかわりに、Activewindow.sheets.add だったかな、とにかく
シートの挿入をやればいいだけです。

そこらへんの改造は簡単に出来るような、VBAのコードを書いた
つもりだったのですが・・・。

mory (512)    2006年7月4日23:33


( 参照数:1543   日平均:0.2 )
 
〜 回答の受付を終了しました 〜


回答、お礼・報告などメッセージの追加

ニックネーム:

まったく新しい内容の質問、質問者以外の方の質問は、メニューの「質問する」から新たに質問してください。

詳細: 内容を詳しく言うと。。。

※「たっぴ」に登録すると質問にポイントが付けられます。 その他便利な機能も使えます!》新規登録 》Help

※http://.....は自動的にハイパーリンクに変換します。
※<pre></pre>が使用できます。     ※引用は行の先頭に「>」を付けてください。自動的に色が付きます。




利用規約 特定商取引に関する法律に基づく表記 プライバシーポリシー 問合せ