Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


21333 / 76738 ←次へ | 前へ→

【60806】Re:ありがとうございます。恥ずかしながら…
発言  kanabun  - 09/3/16(月) 14:21 -

引用なし
パスワード
   ▼アル さん:

>恥ずかしながら、不勉強のためコードの理解に手こずっています。
>Try2 と Try3の組み合わせ方が今ひとつわかりません。
>さらに、
>下のような表を当てはめると、
>私が意図したプロットでは、A列で0が3つ続くところ(=B列14)、
>その14を横軸の最大値としてC軸が縦軸のグラフを作成したいのですが、
>ご教授いただいたTry3では横軸が表の最後の23までプロットされてしまいます。
>
>Try2のメッセージボックスでは、たしかに14を取得しているのですが…

それはこういうことです。
Sub Try3() の "000"位置の判定には Sub Try1()の単純な考え方のほう、
つまり、A列の数字は必ず「一桁」という条件で成り立つ方法で判断し
ているから、必ずしも一桁でないときは 文字列上で "000"のある位置
と、セル上での行数が一致しません。

> A   B     C         
>111    0    36    
>112    1    38    
>113    2    45    
>114    3    42    
>115    4    41    
>116    5    46    
>117    6    49    
>118    7    39    
>119    8    40    
>120    9    40    
>121    10    15    
>122    11    12    
> 0    12    33    
> 0    13    36    
> 0    14    25    
> 0    15    29    
> 0    16    36    

こういうA列データを Try1()で TransposeしてJoinしますと
> ss = Join(Application.Transpose(r), "")
"11111211311411511611711811912012112200000"
という文字列となり、この文字列から "000"を検索すれば、
37番目から"000"があることになります。
Try2()で 先頭の数字1文字を連結すれば、
同じデータは
"111111111111000000000000" という文字列となり、このばあいは
13番目から"000"が始まっています、
ということになります。
ですから、解決策は簡単で、

>    Set r = .Range("A2", .Cells(Rows.Count, 1).End(xlUp))
>    ss = Join(Application.Transpose(r), "")
Try1()条件でかいてあるこの行を
    ss = Join(Application.Transpose( _
       Application.Replace(r, 2, 10, "")), "")

のように Try2()方式に改めれば、すべて解決となるはずです。
4 hits

【60794】グラフの挿入をVBAで行う アル 09/3/15(日) 16:29 質問
【60795】Re:グラフの挿入をVBAで行う kanabun 09/3/15(日) 19:48 発言
【60796】Re:グラフの挿入をVBAで行う kanabun 09/3/15(日) 21:21 発言
【60805】Re:ありがとうございます。恥ずかしながら… アル 09/3/16(月) 12:44 質問
【60806】Re:ありがとうございます。恥ずかしながら… kanabun 09/3/16(月) 14:21 発言
【60815】おかげさまで出来ました。 アル 09/3/16(月) 19:41 お礼
【60822】いったん締めた後に恐縮ですが… アル 09/3/17(火) 5:51 質問
【60823】Re:いったん締めた後に恐縮ですが… kanabun 09/3/17(火) 8:47 発言
【60845】Re:いったん締めた後に恐縮ですが… アル 09/3/17(火) 19:36 お礼

21333 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free