[[20170616232836]] 『複雑な並べ替えについて』(Please) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『複雑な並べ替えについて』(Please)

よろしくお願いします。

十の位の統計
● 0 1 2 3 4 5 6 7 8 9
−−−−−−−−−−−−−−−−−
0|15|11|08|07|07|13|11|08|06|07
1|07|08|06|08|06|09|03|05|10|08
2|03|08|11|05|11|03|06|10|12|07
3|11|05|02|07|08|07|12|03|06|14
4|13|03|05|07|16|09|08|05|09|09
5|10|07|11|06|05|09|06|07|05|11
6|04|04|06|10|05|05|08|10|10|07
7|09|05|07|12|05|01|07|03|09|06
8|09|10|08|04|05|09|04|10|04|14
9|12|06|13|10|18|11|07|02|05|05

一の位の統計
● 0 1 2 3 4 5 6 7 8 9
−−−−−−−−−−−−−−−−−
0|15|11|08|07|07|13|11|08|06|07
1|07|08|06|08|06|09|03|05|10|08
2|03|08|11|05|11|03|06|10|12|07
3|11|05|02|07|08|07|12|03|06|14
4|13|03|05|07|16|09|08|05|09|09
5|10|07|11|06|05|09|06|07|05|11
6|04|04|06|10|05|05|08|10|10|07
7|09|05|07|12|05|01|07|03|09|06
8|09|10|08|04|05|09|04|10|04|14
9|12|06|13|10|18|11|07|02|05|05

現在、A5:K15に十の位の統計という表とA18:K28に一の位の統計という表があります。
(一の位の中身は、十の位をコピーしただけの、投稿用データです)

これは例えば、昨日「77」という数字が出て、今日「12」が出たとするならば
十の位のセルでI7、データ上では「05」に1を足すということです。
一の位ならばI21セル「10」に1を足すというふうに使用しています。

L5からL15までは

「0」
「1」
「2」
「3」
「4」
「5」
「6」
「7」
「8」
「9」

が入っています。(一の位のL19からL28も)

M列にはB列とL列を&で連結した値が下のように入っています。

15「0」
07「1」
03「2」
11「3」
13「4」
10「5」
04「6」
09「7」
09「8」
12「9」

以降もC+LがN列 D+LがO列……という風になっています。
この表をX列〜AG列まで数値に直して貼りつけします。
その後に各列を昇順でソートしています。
マクロにしていて十の位の一列ソート、十の位の二列ソートという個別ソートです。
(前に一斉ソートをしましたが失敗しました。)

その後、AI列からARまでは、rightで右から2つめの値を取り出しています。
15「0」
07「1」
03「2」
11「3」
13「4」
10「5」
04「6」
09「7」
09「8」
12「9」の「」の中身です。

今度はソートした値を数値に直して、AT列からBC列にコピーしています。
※一の位も同じです。

最後は、BEに十の位、BFに一の位をコピーして左右を&で結合させた値をBGに出しています。
(今回ならば、今日の出た数字が「12」なので”十の位の一”と”一の位の二”をソートしたものです)

これをもっと効率よくできる方法はないでしょうか?
どなたかご教授いただけたらと思います、よろしくお願い致します。 

< 使用 Excel:Excel2010、使用 OS:Windows10 >


 一番最後の重要な結論がさっぱり理解できないです。
 >最後は、BEに十の位、BFに一の位をコピーして左右を&で結合させた値をBGに出しています。 
 >(今回ならば、今日の出た数字が「12」なので”十の位の一”と”一の位の二”をソートしたものです)
 BFとBGの値はそれぞれどうなればいいのですか? 
(稲葉) 2017/06/17(土) 08:20

 説明通りにやってみたけどこれでいいのかい?
 結局最後はわからないのだけど。
     |[AI]|[AJ]|[AK]|[AL]|[AM]|[AN]|[AO]|[AP]|[AQ]|[AR]|[AS]|[AT]|[AU]|[AV]|[AW]|[AX]|[AY]|[AZ]|[BA]|[BB]|[BC]|[BD]|[BE]|[BF]|[BG]
 [6] |   2|   4|   3|   8|   5|   7|   1|   9|   8|   9|    |  03|  03|  02|  04|  05|  01|  03|  02|  04|  05|    |??  |??  |??  
 [7] |   6|   6|   4|   2|   6|   2|   8|   3|   5|   7|    |  04|  04|  05|  05|  05|  03|  04|  03|  05|  06|    |??  |??  |??  
 [8] |   1|   3|   1|   5|   7|   6|   2|   7|   9|   0|    |  07|  05|  06|  06|  05|  05|  06|  03|  05|  07|    |??  |??  |??  
 [9] |   7|   7|   6|   0|   8|   3|   5|   4|   0|   2|    |  09|  05|  06|  07|  05|  07|  06|  05|  06|  07|    |??  |??  |??  
 [10]|   8|   9|   7|   3|   1|   1|   7|   1|   3|   6|    |  09|  06|  07|  07|  06|  09|  07|  06|  06|  07|    |??  |??  |??  
 [11]|   5|   5|   0|   4|   0|   4|   9|   5|   4|   1|    |  10|  07|  08|  07|  07|  09|  07|  07|  09|  08|    |??  |??  |??  
 [12]|   3|   1|   8|   1|   3|   5|   4|   0|   7|   4|    |  11|  08|  08|  08|  08|  09|  08|  08|  09|  09|    |??  |??  |??  
 [13]|   9|   2|   2|   6|   2|   8|   6|   2|   1|   5|    |  12|  08|  11|  10|  11|  09|  08|  10|  10|  11|    |??  |??  |??  
 [14]|   4|   8|   5|   9|   4|   9|   0|   6|   6|   3|    |  13|  10|  11|  10|  16|  11|  11|  10|  10|  14|    |??  |??  |??  
 [15]|   0|   0|   9|   7|   9|   0|   3|   8|   2|   8|    |  15|  11|  13|  12|  18|  13|  12|  10|  12|  14|    |??  |??  |??  
 [16]|    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    
 [17]|    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    
 [18]|    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    
 [19]|   2|   4|   3|   8|   5|   7|   1|   9|   8|   9|    |  03|  03|  02|  04|  05|  01|  03|  02|  04|  05|    |    |    |    
 [20]|   6|   6|   4|   2|   6|   2|   8|   3|   5|   7|    |  04|  04|  05|  05|  05|  03|  04|  03|  05|  06|    |    |    |    
 [21]|   1|   3|   1|   5|   7|   6|   2|   7|   9|   0|    |  07|  05|  06|  06|  05|  05|  06|  03|  05|  07|    |    |    |    
 [22]|   7|   7|   6|   0|   8|   3|   5|   1|   0|   2|    |  09|  05|  06|  07|  05|  07|  06|  05|  06|  07|    |    |    |    
 [23]|   8|   9|   7|   3|   1|   1|   7|   4|   3|   6|    |  09|  06|  07|  07|  06|  09|  07|  05|  06|  07|    |    |    |    
 [24]|   5|   5|   0|   4|   0|   4|   9|   5|   4|   1|    |  10|  07|  08|  07|  07|  09|  07|  07|  09|  08|    |    |    |    
 [25]|   3|   1|   8|   1|   3|   5|   4|   0|   7|   4|    |  11|  08|  08|  08|  08|  09|  08|  08|  09|  09|    |    |    |    
 [26]|   9|   2|   2|   6|   2|   8|   6|   6|   1|   5|    |  12|  08|  11|  10|  11|  09|  08|  10|  10|  11|    |    |    |    
 [27]|   4|   8|   5|   9|   4|   9|   0|   8|   6|   3|    |  13|  10|  11|  10|  16|  11|  11|  10|  10|  14|    |    |    |    
 [28]|   0|   0|   9|   7|   9|   0|   3|   2|   2|   8|    |  15|  11|  13|  12|  18|  13|  12|  11|  12|  14|    |    |    |    
(稲葉) 2017/06/17(土) 08:39

稲葉様、ご連絡ありがとうございます。
ATからBCは0から9に対応しております。
ですので、今日でた数字が「12」ですので、対応する十の桁は「1」となりますのでAU6からAU15を使用します。これをBEに移動。
十の桁として使うのでAU6の数字をBEの1〜10にコピー
AU7の数字をBEの11〜20にコピー……後は同じ。

(すみません、ソートは降順の間違いでした)

一の位が「2」ですので、AV19からAV28を使用します。
これはBFに移動。
AV19はBF1 AV20はBF2 AV21はBF3……後は同じ。
これを使って上から出やすい順番0〜99の全組み合わせをBGに出力しています。

稲葉様に作成していただいた表はAT以降からずれている気がします。

よろしくお願い致します。

(Please) 2017/06/17(土) 12:36


 文字読むのだるいので
 AT以降の求める結果をエクセルそのままコピーして貼り付けてくれませんか?
(稲葉) 2017/06/17(土) 12:42

 >十の桁は「1」となりますのでAU6からAU15を使用します
 >一の位が「2」ですので、AV19からAV28を使用します。 
 ってありますが、最初の投稿だと

 >これは例えば、昨日「77」という数字が出て、今日「12」が出たとするならば 
 >十の位のセルでI7、データ上では「05」に1を足すということです。 
 >一の位ならばI21セル「10」に1を足すというふうに使用しています。 
 とあります。

 昨日の値は横軸
 今日の値は縦軸 逆だったので修正 12:51
 と認識していましたが、違うのですか?
(稲葉) 2017/06/17(土) 12:50

稲葉様、ご連絡ありがとうございます。

これは例えば、昨日「77」という数字が出て、今日「12」が出たとするならば

 >十の位のセルでI7、データ上では「05」に1を足すということです。 
 >一の位ならばI21セル「10」に1を足すというふうに使用しています。 
 とあります。

「77」→「12」を反映したデータをソートします。

 >十の位のセルでI7、データ上では「05」に1を足すということです。 
 >一の位ならばI21セル「10」に1を足すというふうに使用
この時点で「77」の役目が終わります。
そして翌日分は「12」の後に出る数字を統計を使って予想するために「12」を使います。

すみません。
文字では上手く伝わらないかもしれません。

AT以降のセルを貼りつけますので、少々お待ち下さい。
(Please) 2017/06/17(土) 13:22


 要するに、12の後に出やすい数値を求めたいってことですか?
 一応お伺いいたしますが、何のために?
(稲葉) 2017/06/17(土) 14:10

AI〜AR

0 0 9 7 9 0 3 8 2 8
4 8 5 9 4 9 0 6 6 3
9 2 2 6 2 8 6 2 1 5
3 1 8 1 3 5 4 0 7 4
5 5 0 4 0 4 9 5 4 1
8 9 7 3 1 1 7 4 3 6
7 7 6 0 8 3 5 1 0 2
1 3 1 5 7 6 2 7 9 0
6 6 4 2 6 2 8 3 5 7
2 4 3 8 5 7 1 9 8 9

0 0 9 7 9 0 3 8 2 8
4 8 5 9 4 9 0 6 6 3
9 2 2 6 2 8 6 2 1 5
3 1 8 1 3 5 4 0 7 4
5 5 0 4 0 4 9 5 4 1
8 9 7 3 1 1 7 4 3 6
7 7 6 0 8 3 5 1 0 2
1 3 1 5 7 6 2 7 9 0
6 6 4 2 6 2 8 3 5 7
2 4 3 8 5 7 1 9 8 9

AT〜BC(値は上と同じだけど、こちらは数値化している)

0 0 9 7 9 0 3 8 2 8
4 8 5 9 4 9 0 6 6 3
9 2 2 6 2 8 6 2 1 5
3 1 8 1 3 5 4 0 7 4
5 5 0 4 0 4 9 5 4 1
8 9 7 3 1 1 7 4 3 6
7 7 6 0 8 3 5 1 0 2
1 3 1 5 7 6 2 7 9 0
6 6 4 2 6 2 8 3 5 7
2 4 3 8 5 7 1 9 8 9

0 0 9 7 9 0 3 8 2 8
4 8 5 9 4 9 0 6 6 3
9 2 2 6 2 8 6 2 1 5
3 1 8 1 3 5 4 0 7 4
5 5 0 4 0 4 9 5 4 1
8 9 7 3 1 1 7 4 3 6
7 7 6 0 8 3 5 1 0 2
1 3 1 5 7 6 2 7 9 0
6 6 4 2 6 2 8 3 5 7
2 4 3 8 5 7 1 9 8 9

ここで「12」の十の位の一を選ぶ
0
8
2
1
5
9
7
3
6
4
これを上「0」からBE1からBE10へ「8」をBE11からBE20

ここで「12」の一の位の二を選ぶ

9
5
2
8
0
7
6
1
4
3
これは、そのまま「9528076143」の並びでBG1〜BG10にコピー。
「9528076143」でBG11〜BG20にコピー。……同じ
そしてBGがBEとBFを合わせた数字です。
(Please) 2017/06/17(土) 14:18


そうです。
今回の場合なら12の後にでやすい数字を求めたいんです。
この値は毎日変更されます。

理由はクジです。
1日に100個の中(00〜99)の1つが当選するクジと
考えてもらえると、わかりやすいと思います。

よろしく願いします。
(Please) 2017/06/17(土) 14:22


 ロトかなにかか・・・
 降ります。

 そんなランダムに統計も何もないです。
(稲葉) 2017/06/17(土) 14:35

ロトではないんですけど、お手数をおかけしました。

(Please) 2017/06/17(土) 14:39


わかりやすくクジと回答しましたが、
webコンテンツの1つに使用したいと考えておりました。

(Please) 2017/06/17(土) 14:44


 余計意味が分からない・・・
 クジを引かせたいなら、どんな言語でも乱数位だせるし
 統計で出やすいものがあれば、それは乱数じゃないか、試行回数が少ないだけでしょう。

 統計を出して何がしたいのですか?
(稲葉) 2017/06/17(土) 14:57

すみません。

稲葉様はエクセルを使いこなせる方ですが、私は乱数の使い方もわからない初心者です。

(統計で出やすいものがあれば、それは乱数じゃないか、試行回数が少ないだけでしょう)
→これをすれば、なにがどうなるのでしょうか? 
試行回数とはなにを試せばいいのでしょうか?

無知ですみません。

(Please) 2017/06/17(土) 15:12


 話がかみ合わない・・・
 前回の投稿は忘れてください。

 話をまとめます。
 Pleaseさんの要望は「今ある手段を簡略化」できないか ですよね。

 私は結果を求める「手段」を変えようと考えていました。

 ヒアリングの結果、十の位が7→1と来たら次は何が出やすいか
          一の位が7→2と来たら次は何が出やすいか
 を知りたがっていることがわかりました。

 ではそれを知って何がしたいのか、
 もしロトなどのクジであれば意味がないので やめたい。
 WEBコンテンツで使いたいのであれば、なんのためにかが知りたい。

 とここまでの流れをおさらいしました。 

 一番最初の話に戻ります。
 >これをもっと効率よくできる方法はないでしょうか? 

 今の手段を効率化するのであれば、マクロの記録で自動化できるところまでしてください。
 条件分岐についてなら教えることができます。

(稲葉) 2017/06/17(土) 15:28


稲葉様。
ややこしくてすみません。

「今ある手段を簡略化」できないかですよね。→はい、その通りです。

>これをもっと効率よくできる方法はないでしょうか?
今の手段を効率化するのであれば、マクロの記録で自動化できるところまでしてください。
条件分岐についてなら教えることができます。

ここからの質問に、お答えすればいいのでしょうか?

Sub 数値コピー()

    Range("M6:V28").Select
    Selection.Copy
    Range("X6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 8
    ActiveWindow.ScrollColumn = 9
    ActiveWindow.ScrollColumn = 10
    ActiveWindow.ScrollColumn = 11
    ActiveWindow.ScrollColumn = 12
    ActiveWindow.ScrollColumn = 13
    ActiveWindow.ScrollColumn = 14
    ActiveWindow.ScrollColumn = 15
    Range("X16").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = ""
    Range("X16:AG18").Select
    Selection.ClearContents
    Range("X17").Select
End Sub

Sub 昇順()

Range("X6:X15").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("X6"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("X6:X15")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("Y6:Y15").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("Y6"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("Y6:Y15")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("Z6:Z15").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("Z6"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("Z6:Z15")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("AA6:AA15").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("AA6"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("AA6:AA15")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("AB6:AB15").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("AB6"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("AB6:AB15")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("AC6:AC15").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("AC6"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("AC6:AC15")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("AD6:AD15").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("AD6"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("AD6:AD15")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("AE6:AE15").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("AE6"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("AE6:AE15")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("AF6:AF15").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("AF6"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("AF6:AF15")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("AG6:AG15").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("AG6"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("AG6:AG15")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

    Range("X19:X28").Select
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("X19"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("X19:X28")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("Y19:Y28").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("Y19"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("Y19:Y28")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("Z19:Z28").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("Z19"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("Z19:Z28")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("AA19:AA28").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("AA19"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("AA19:AA28")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("AB19:AB28").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("AB19"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("AB19:AB28")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("AC19:AC28").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("AC19"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("AC19:AC28")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("AD19:AD28").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("AD19"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("AD19:AD28")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("AE19:AE19").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("AE19"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("AE19:AE28")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("AF19:AF28").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("AF19"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("AF19:AF28")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Range("AG19:AG28").Select

    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("統計").Sort.SortFields.Add Key:=Range("AG19"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("統計").Sort
        .SetRange Range("AG19:AG28")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

End Sub

Sub 数値コピー2()

    Range("AI6:AR15").Select
    Selection.Copy
    Range("AT6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveWindow.SmallScroll Down:=9
    Range("AI19:AR28").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("AT19").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AO17").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = ""
    Range("AN17").Select
End Sub


以上を

Sub 統計抽出()

Call 数値コピー
Call 昇順
Call 数値コピー2

End Sub

で一括処理しています。

これで、

 AT〜BC

0 0 9 7 9 0 3 8 2 8
4 8 5 9 4 9 0 6 6 3
9 2 2 6 2 8 6 2 1 5
3 1 8 1 3 5 4 0 7 4
5 5 0 4 0 4 9 5 4 1
8 9 7 3 1 1 7 4 3 6
7 7 6 0 8 3 5 1 0 2
1 3 1 5 7 6 2 7 9 0
6 6 4 2 6 2 8 3 5 7
2 4 3 8 5 7 1 9 8 9

0 0 9 7 9 0 3 8 2 8
4 8 5 9 4 9 0 6 6 3
9 2 2 6 2 8 6 2 1 5
3 1 8 1 3 5 4 0 7 4
5 5 0 4 0 4 9 5 4 1
8 9 7 3 1 1 7 4 3 6
7 7 6 0 8 3 5 1 0 2
1 3 1 5 7 6 2 7 9 0
6 6 4 2 6 2 8 3 5 7
2 4 3 8 5 7 1 9 8 9

まで、進みます。

その後は、「12」ならば 十に一集合、一の二集合と個別ボタンを押しています。

Sub 十の一集合()

    Range("AU6:AU15").Select
    Selection.Copy
    ActiveWindow.SmallScroll Down:=0
    Range("AT6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AQ3").Select
    Application.CutCopyMode = False

End Sub
Sub 十の二集合()

    Range("AV6:AV15").Select
    Selection.Copy
    ActiveWindow.SmallScroll Down:=0
    Range("AT6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AQ3").Select
    Application.CutCopyMode = False

End Sub
Sub 十の三集合()

    Range("AW6:AW15").Select
    Selection.Copy
    ActiveWindow.SmallScroll Down:=0
    Range("AT6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AQ3").Select
    Application.CutCopyMode = False

End Sub
Sub 十の四集合()

    Range("AX6:AX15").Select
    Selection.Copy
    ActiveWindow.SmallScroll Down:=0
    Range("AT6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AQ3").Select
    Application.CutCopyMode = False

End Sub
Sub 十の五集合()

    Range("AY6:AY15").Select
    Selection.Copy
    ActiveWindow.SmallScroll Down:=0
    Range("AT6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AQ3").Select
    Application.CutCopyMode = False

End Sub
Sub 十の六集合()

    Range("AZ6:AZ15").Select
    Selection.Copy
    ActiveWindow.SmallScroll Down:=0
    Range("AT6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AQ3").Select
    Application.CutCopyMode = False

End Sub
Sub 十の七集合()

    Range("BA6:BA15").Select
    Selection.Copy
    ActiveWindow.SmallScroll Down:=0
    Range("AT6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AQ3").Select
    Application.CutCopyMode = False

End Sub
Sub 十の八集合()

    Range("BB6:BB15").Select
    Selection.Copy
    ActiveWindow.SmallScroll Down:=0
    Range("AT6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AQ3").Select
    Application.CutCopyMode = False

End Sub
Sub 十の九集合()

    Range("BC6:BC15").Select
    Selection.Copy
    ActiveWindow.SmallScroll Down:=0
    Range("AT6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AQ3").Select
    Application.CutCopyMode = False

End Sub
Sub 一の一集合()

    ActiveWindow.SmallScroll Down:=9
    Range("AU19:AU28").Select
    Selection.Copy
    Range("AT19").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AG30").Select
    Application.CutCopyMode = False

End Sub
Sub 一の二集合()

    ActiveWindow.SmallScroll Down:=9
    Range("AV19:AV28").Select
    Selection.Copy
    Range("AT19").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AG30").Select
    Application.CutCopyMode = False

End Sub
Sub 一の三集合()

    ActiveWindow.SmallScroll Down:=9
    Range("AW19:AW28").Select
    Selection.Copy
    Range("AT19").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AG30").Select
    Application.CutCopyMode = False

End Sub
Sub 一の四集合()

    ActiveWindow.SmallScroll Down:=9
    Range("AX19:AX28").Select
    Selection.Copy
    Range("AT19").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AG30").Select
    Application.CutCopyMode = False

End Sub
Sub 一の五集合()

    ActiveWindow.SmallScroll Down:=9
    Range("AY19:AY28").Select
    Selection.Copy
    Range("AT19").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AG30").Select
    Application.CutCopyMode = False

End Sub
Sub 一の六集合()

    ActiveWindow.SmallScroll Down:=9
    Range("AZ19:AZ28").Select
    Selection.Copy
    Range("AT19").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AG30").Select
    Application.CutCopyMode = False

End Sub
Sub 一の七集合()

    ActiveWindow.SmallScroll Down:=9
    Range("BA19:BA28").Select
    Selection.Copy
    Range("AT19").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AG30").Select
    Application.CutCopyMode = False

End Sub
Sub 一の八集合()

    ActiveWindow.SmallScroll Down:=9
    Range("BB19:BB28").Select
    Selection.Copy
    Range("AT19").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AG30").Select
    Application.CutCopyMode = False

End Sub
Sub 一の九集合()

    ActiveWindow.SmallScroll Down:=9
    Range("BC19:BC28").Select
    Selection.Copy
    Range("AT19").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AG30").Select
    Application.CutCopyMode = False

End Sub

Sub 十の0集合()

    Range("AI6:AI15").Select
    Selection.Copy
    Range("AT6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AR17").Select
    Application.CutCopyMode = False

End Sub
Sub 一の0集合()

    ActiveWindow.SmallScroll Down:=9
    Range("AI19:AI28").Select
    Selection.Copy
    Range("AT19").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AO17").Select
    Application.CutCopyMode = False

End Sub

そしてBE1の関数は=$AT$6 BF1の関数は=$AT$19です。
BG=BE1&BF1です。

お察しの通り、ド素人の式です。
お手数だとは、思いますがよろしくお願い致します。

(Please) 2017/06/17(土) 15:48


 テスト環境整えてないので、コードのデバッグのみです。
 必ずバックアップとってから実行してください。

    Option Explicit
    Sub 統計抽出()
        Call 数値コピー
        Call 昇順
        Call 数値コピー2
    End Sub

    Private Sub 数値コピー()
        Range("M6:V28").Copy
        Range("X6").PasteSpecial Paste:=xlPasteValues
        Range("X16:AG18").ClearContents
    End Sub
    Private Sub 昇順()
        Dim i As Long
        Dim j As Long
        Dim r As Range
        '降順か?
        With Worksheets("統計").Sort
            For j = 1 To 2
                If j = 1 Then
                    Set r = Range("X6:X15")
                Else
                    Set r = Range("X19:X28")
                End If
                For i = 0 To 9
                    Set r = r.Offset(, i)
                    .SortFields.Clear
                    .SortFields.Add Key:=r(1), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
                    .SetRange r
                    .Header = xlNo
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
                Next i
            Next j
        End With
    End Sub
    Private Sub 数値コピー2()
        Range("AI6:AR15").Copy
        Range("AT6").PasteSpecial Paste:=xlPasteValues
        Range("AI19:AR28").Copy
        Range("AT19").PasteSpecial Paste:=xlPasteValues
    End Sub
    Sub 集合()
        Dim Tens As Long
        Dim Ones As Long
        Tens = Application.InputBox("「十の位」の数値を入力してください", Type:=1)
        Ones = Application.InputBox("「一の位」の数値を入力してください", Type:=1)
        Range("AU6:AU15").Offset(, Tens).Copy
        Range("AT6").PasteSpecial Paste:=xlPasteValues
        Range("AU19:AU28").Offset(, Ones).Copy
        Range("AT19").PasteSpecial Paste:=xlPasteValues
        MsgBox "完了"
    End Sub

(稲葉) 2017/06/17(土) 16:43


稲葉様。
わざわざコードまでありがとうございます。
大変、感謝致します。

無事に実行はできましたが、ソートでおかしくなってしまいます。

Sub 統計抽出()

        Call 数値コピー
        Call 昇順
        Call 数値コピー2
    End Sub

の時点でずれてるように思います。

その後、表示ボックスに十の位と一の位を入力することはエラーなくできました。
何度も、申し訳ありません。
よろしくお願い致します。

(Please) 2017/06/17(土) 17:11


 どうおかしくなるかわからんです
(稲葉) 2017/06/17(土) 17:24

0 0 9 7 9 0 3 8 2 8
4 8 5 9 4 9 0 6 6 3
9 2 2 6 2 8 6 2 1 5
3 1 8 1 3 5 4 0 7 4
5 5 0 4 0 4 9 5 4 1
8 9 7 3 1 1 7 4 3 6
7 7 6 0 8 3 5 1 0 2
1 3 1 5 7 6 2 7 9 0
6 6 4 2 6 2 8 3 5 7
2 4 3 8 5 7 1 9 8 9

0 0 9 7 9 0 3 8 2 8
4 8 5 9 4 9 0 6 6 3
9 2 2 6 2 8 6 2 1 5
3 1 8 1 3 5 4 0 7 4
5 5 0 4 0 4 9 5 4 1
8 9 7 3 1 1 7 4 3 6
7 7 6 0 8 3 5 1 0 2
1 3 1 5 7 6 2 7 9 0
6 6 4 2 6 2 8 3 5 7
2 4 3 8 5 7 1 9 8 9

稲葉様のマクロを走らせるとAIからARの間に相違がでるようです。

0 0 0 7 0 0 3 0 0 0
4 8 1 9 1 1 0 1 1 1
9 2 2 6 2 2 6 2 2 2
3 1 3 1 3 3 4 3 3 3
5 5 4 4 4 4 9 4 4 4
8 9 5 3 5 5 7 5 5 5
7 7 6 0 6 6 5 6 6 6
1 3 7 5 7 7 2 7 7 7
6 6 8 2 8 8 8 8 8 8
2 4 9 8 9 9 1 9 9 9

0 0 0 7 0 0 3 0 0 0
4 8 1 9 1 1 0 1 1 1
9 2 2 6 2 2 6 2 2 2
3 1 3 1 3 3 4 3 3 3
5 5 4 4 4 4 9 4 4 4
8 9 5 3 5 5 7 5 5 5
7 7 6 0 6 6 5 6 6 6
1 3 7 5 7 7 2 7 7 7
6 6 8 2 8 8 8 8 8 8
2 4 9 8 9 9 1 9 9 9

よろしくお願いします。
(Please) 2017/06/17(土) 17:30


 今で先なので夜以降確認します
 範囲を変数にして回しているだけなので、自分で確認された方が早いです
(稲葉) 2017/06/17(土) 17:34

稲葉。
出先にもかかわらず、すみません。
それまで、自分で見てみますが、変数というのもイマイチな状態です。

以降もよろしくお願い致します。

(Please) 2017/06/17(土) 17:40


すみません、”様”が抜けてました。
申し訳ありません。
(Please) 2017/06/17(土) 19:42

 一か所コーディングミスってました。
 >Set r = r.Offset(, i)
 を
 Set r = r.Offset(, 1)

 に変更してください。
(稲葉) 2017/06/17(土) 21:01

稲葉様、お忙しい中、ありがとうございます。

Set r = r.Offset(, i)

 を
Set r = r.Offset(, 1)

変更してマクロを走らせたところ

0 0 9 7 9 0 3 8 2 8
1 8 5 9 4 9 0 6 6 3
2 2 2 6 2 8 6 2 1 5
3 1 8 1 3 5 4 0 7 4
4 5 0 4 0 4 9 5 4 1
5 9 7 3 1 1 7 4 3 6
6 7 6 0 8 3 5 1 0 2
7 3 1 5 7 6 2 7 9 0
8 6 4 2 6 2 8 3 5 7
9 4 3 8 5 7 1 9 8 9

0 0 9 7 9 0 3 8 2 8
1 8 5 9 4 9 0 6 6 3
2 2 2 6 2 8 6 2 1 5
3 1 8 1 3 5 4 0 7 4
4 5 0 4 0 4 9 5 4 1
5 9 7 3 1 1 7 4 3 6
6 7 6 0 8 3 5 1 0 2
7 3 1 5 7 6 2 7 9 0
8 6 4 2 6 2 8 3 5 7
9 4 3 8 5 7 1 9 8 9


が、私が細々処理をした結果です。

0 0 9 7 9 0 3 8 2 8
4 8 5 9 4 9 0 6 6 3
9 2 2 6 2 8 6 2 1 5
3 1 8 1 3 5 4 0 7 4
5 5 0 4 0 4 9 5 4 1
8 9 7 3 1 1 7 4 3 6
7 7 6 0 8 3 5 1 0 2
1 3 1 5 7 6 2 7 9 0
6 6 4 2 6 2 8 3 5 7
2 4 3 8 5 7 1 9 8 9

0 0 9 7 9 0 3 8 2 8
4 8 5 9 4 9 0 6 6 3
9 2 2 6 2 8 6 2 1 5
3 1 8 1 3 5 4 0 7 4
5 5 0 4 0 4 9 5 4 1
8 9 7 3 1 1 7 4 3 6
7 7 6 0 8 3 5 1 0 2
1 3 1 5 7 6 2 7 9 0
6 6 4 2 6 2 8 3 5 7
2 4 3 8 5 7 1 9 8 9

多少近づいて来た感があります。

よろしくお願いします。

(Please) 2017/06/17(土) 21:40


 set r〜
 の位置をnext iの直前に移動してください
 これでコード上のバグは消えたと思います
(稲葉) 2017/06/17(土) 22:02

稲葉様、ありがとうございます。

Sub 統計抽出()

        Call 数値コピー
        Call 昇順
        Call 数値コピー2
    End Sub

で無事完了致しました。

次の位、入力でずれてしまいます。
私なりに、セルの値を変えましたがダメでした。
↓変えたコードです。

Sub 集合()

        Dim Tens As Long
        Dim Ones As Long
        Tens = Application.InputBox("「十の位」の数値を入力してください", Type:=1)
        Ones = Application.InputBox("「一の位」の数値を入力してください", Type:=1)
        Range("AT6:AT15").Offset(, Tens).Copy
        Range("AS6").PasteSpecial Paste:=xlPasteValues
        Range("AT19:AT28").Offset(, Ones).Copy
        Range("AS19").PasteSpecial Paste:=xlPasteValues
        MsgBox "完了"
    End Sub

よろしく、お願い致します。
(Please) 2017/06/17(土) 22:17


 最後は頑張ってみてください
 おやすみなさい
(稲葉) 2017/06/17(土) 23:07

稲葉様。
丸一日、お付き合いたただきありがとうございます。

こちらの無知でご迷惑をおかけいたしました。
最後、頑張ってみます。

本日は、失礼致します。

(Please) 2017/06/17(土) 23:37


稲葉様、先日は、いろいろとありがとうございます。
Offsetを使った場合の報告です。
(私には、報告義務があると思い、投稿させていただきました)

Sub 集合テスト()

    Range("A1").Offset(0, 0).Select
    Range("A1 ").Offset(0, 0).Copy
    Range("L1").PasteSpecial Paste:=xlPasteValues

    Range("A2").Offset(0, 0).Select
    Range("A2 ").Offset(0, 0).Copy
    Range("L2").PasteSpecial Paste:=xlPasteValues

    Range("A12:A21").Offset(0, 0).Select
    Range("A12:A21").Offset(0, 0).Copy
    Range("M1:M100").PasteSpecial Paste:=xlPasteValues ' xlPasteAll ,      Transpose:=True

    Application.CutCopyMode = False

    End Sub

私が4日程、使って考えても、これくらいが限界でした。
この(0,0)の値を変えれば上下左右に移動できることは理解できました。

今回は練習用のエクセルを使用しましたので、十の位が入るのがL列で
一の位が入るのがM列です。
&で合体させるたのがN列です。

十の列は上から2行までしかいれていません。
これを繰り返すようなことができることはわかっていますが……私には、わかりませんでした。
さらに、ユーザーフォームに対応させるのも無理でした。
以上、ご報告までです。

(Please) 2017/06/21(水) 21:29


 (稲葉) 2017/06/17(土) 16:43の投稿で集合プロシージャが希望通りにならないことがわかりました。

 修正するうえで、十の0がAI列で、十の一=九がAU〜BC列の理由がわからないのですが、説明してもらえますか?

http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_030.html

 またデバッグまでは自分でお願いできますか。
(稲葉) 2017/06/22(木) 11:49

稲葉様。
わざわざありがとうございます。

>修正するうえで、十の0がAI列で、十の一=九がAU〜BC列の理由がわからないのですが、説明してもらえますか?

すみません。ここはだいぶ省略していました。
最初から説明したいと思います。

AT5〜BC15=
十の位の(0〜9)までがソートされた状態であります。

AT19〜BC28=
一の位の(0〜9)までがソートされた状態であります。

BEには十の位が移動する。
BFには一の位が移動する。
BGは、BEとBFが&で結びついた値です。

BEに移動させる方法ですが「十の0」ならば、「十の0」ボタンを押すようにしています。
この時は、AT6〜AT15がコピーで移動します。

コピー方法なのですが、AT6をBE1にコピーし以下を$で固定して10行までコピー。
AT7をBE11にコピーし以下を$で固定して20行までコピー……以下同じ。
これで、十の桁を作りだしています。

一の桁も「一の0」として、AT19〜AT28をBF1〜BF10に、AT19〜AT28をBF11〜BF20
……以下同じ、で一の桁を作りだしています。

このコピー方法を「十の1」「一の2」等、それぞれのボタンに割り当てています。
わかりにくければ、すみません。

デバックは、上記のサイトを見ながら挑戦したいと思います。
よろしくお願い致します。

(Please) 2017/06/22(木) 13:45


 だからPleaseさんが提示したコードがそうなっていないから伺っているのです。

 >Sub 十の0集合() 
 >    Range("AI6:AI15").Select
             ~~~

(稲葉) 2017/06/22(木) 14:08


稲葉様。

確認しました。
BEはAT6で固定しています。
ですので「十の0」が「0」以外の時、「十の一」「十の二」「十の三」……等はATにコピーされて、それがBE列に値が流れます。

そうなると「0」以外のときのAT6〜AT15は常にAU6〜15、AV6〜15、AW6〜15……で埋まっているために「0」だけは、AI6〜15をコピーすることにしました。

一の0集合()も同じ理由で、ATがAU〜BCで埋まっていた時に「0」が出ると、それをクリアにするために「0」のときだけAIから引いています。

すみません。先ほどの投稿が間違いでした。(自分で書いておきながら、だいぶん
混乱しています)
結果的には全てをATに集約させてからBEとBFに割り振ってるという形です。
ですので、ATで固定しています。

よろしくお願いします。

(Please) 2017/06/22(木) 14:41


 であれば、(稲葉) 2017/06/17(土) 16:43で投稿した集合プロシージャの基準を
 AU列からAT列にすれば済む話では?
(稲葉) 2017/06/22(木) 15:09

稲葉様。

>2017/06/17(土) 22:17
でATに軸を変えたのですが。

少し、考えてみますので、夜までお時間を下さい。

(Please) 2017/06/22(木) 15:23


稲葉様。

下が、2017/06/17(土) 16:43に稲葉様にいただいたコードです。

Sub 集合()

        Dim Tens As Long
        Dim Ones As Long
        Tens = Application.InputBox("「十の位」の数値を入力してください", Type:=1)
        Ones = Application.InputBox("「一の位」の数値を入力してください", Type:=1)
        Range("AU6:AU15").Offset(, Tens).Copy
        Range("AT6").PasteSpecial Paste:=xlPasteValues
        Range("AU19:AU28").Offset(, Ones).Copy
        Range("AT19").PasteSpecial Paste:=xlPasteValues
        MsgBox "完了"
    End Sub

その後、私が、2017/06/17(土) 22:17

 Sub 集合()

        Dim Tens As Long
        Dim Ones As Long
        Tens = Application.InputBox("「十の位」の数値を入力してください", Type:=1)
        Ones = Application.InputBox("「一の位」の数値を入力してください", Type:=1)
        Range("AT6:AT15").Offset(, Tens).Copy
        Range("AS6").PasteSpecial Paste:=xlPasteValues
        Range("AT19:AT28").Offset(, Ones).Copy
        Range("AS19").PasteSpecial Paste:=xlPasteValues
        MsgBox "完了"
    End Sub

に変更してダメでした。
そして現在、

Sub 集合()

        Dim Tens As Long
        Dim Ones As Long
        Tens = Application.InputBox("「十の位」の数値を入力してください", Type:=1)
        Ones = Application.InputBox("「一の位」の数値を入力してください", Type:=1)
        Range("AT6:AT15").Offset(, Tens).Copy
        Range("AT6").PasteSpecial Paste:=xlPasteValues
        Range("AT19:AT28").Offset(, Ones).Copy
        Range("AT19").PasteSpecial Paste:=xlPasteValues
        MsgBox "完了"

    End Sub

Range("AS6").PasteSpecial Paste:=xlPasteValues
Range("AS19").PasteSpecial Paste:=xlPasteValues
を↓にすることで無事、成功しました。

Range("AT6").PasteSpecial Paste:=xlPasteValues
Range("AT19").PasteSpecial Paste:=xlPasteValues

>AU列からAT列にすれば済む話では?

をヒントに
頭の中で視覚的にコピーして貼り付ける図が思い浮かんだのできました。
これで無事、全てが解決しました。
また、少しずつ勉強していこうと思います。
こんな私のためにお時間をいただきありがとうございました。

(Please) 2017/06/22(木) 18:48


 最初はだれでも初心者ですので、頑張って読み解けるようお互い頑張りましょう。
(稲葉) 2017/06/22(木) 19:03

稲葉様。
重ね重ねになりますが、ありがとうございます。
無事解決しましたので、このスレはこれで終了させていただきたいと思います。
(Please) 2017/06/22(木) 19:30

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.