1370081670 Excel2003のVBAを使用し、条件範囲を罫線で囲んだ中に平均値が入力されるようなコードプログラムを作りたいと思っています。


作成してあるフォーマット(添付画像参照)に数値のみを入力する事で条件範囲(-1以上+1以下の数値が連続して四つ並んだ時)の五行一列を罫線で囲み、条件範囲内の三つの数値(より0に近いもの)の平均を罫線内に入力させたいのです。
※添付画像のフォーマットは5列間隔に16個並んでいます。

今後、条件範囲の変更にも対応できるようなコードを作成(数字を書き換えるだけで条件範囲が変更出来るようなもの)して頂けると大変助かります。
説明文が分かりにくいかもしれません。ご指摘いただければその都度補足説明を致します。

どうかお知恵をお貸し下さい。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/06/01 19:14:30
  • 終了:2013/06/08 19:15:04

回答(0件)

回答はまだありません

  • id:Silvanus
    説明文の内容をそのまま処理すると、aa03002H2の場合、
    (1) 最初に該当するのは4番~7番の0.70, 0.20, 0.60, 0.10
    (2) この中で0に近い3つは0.10,0.20,0.60
    (3) よってその平均は0.30
    となりますが、サンプルではそうなっていませんよね?
    それと4つ数値が連続した箇所を囲むとありますが
    実際にはその数値そのものでなく、数値の列の2つ右と3つ右のところに
    囲まれていますよね?何故2つ右と3つ右の二列なのですか?
    それと、4の数値が連続している行(各数値は2行にわたっているので計8行)と
    囲まれている5行の関係がどうなっているのも全く判りません。
    また、条件に合致する数値が5つ以上連続して並ぶ場合は
    これらの処理を順次1つずつずらして行うのか、あるいは、
    4つ毎に区切って行い、それに余る分は無視するのか、どうなんでしょうか?
    例) 7つ連続する場合、数値をV1,V2,V3,V4,V5,V6,V7とする
    方法A: V1,V2,V3,V4を処理 → V2,V3,V4,V5 → V3,V4,V5,V6 → V4,V5,V6,V7
    方法B: V1,V2,V3,V4を処理 → V5,V6,V7は無視
  • id:noshiroon
    Silvanusさん、コメント有難うございます。

    説明に間違いがありました。申し訳ありません。
    H2を見ますと、4~9番の6つの数値が条件範囲内なのですが、6つ連続した場合は5行ずつ(計10行)を罫線で囲みます。4つ連続の場合は5行のみです。
    それと、数値は囲みません。間違いですスミマセン。二つ右を囲むのは見やすさだけです。3列目は二列目のデータ及び条件範囲をコピペしてあるだけと考えてください。
    数値は2mm間隔で測定してますので、数値の2列目は1行=1mmとして長さ50mm×幅6mmの数値の良い場所を1.5×6mmで切断し、H2だと計10枚の製品が作られるという事です。

    ご理解いただけたでしょうか?
  • id:Silvanus
    う~ん…未だ解らないことだらけです…orz。
    仰せの通り、H2では4~9番の6個が連続して条件に該当していますが
    その横に書かれている0.50と0.40は、具体的に何番何番の数値の平均なのですか?
    それと4連続→5行、6連続→10行(5行×2)であるならば、5連続及び7連続以上を
    どういう風に処理すれば良いのですか?更に、H2の4~9番の処理においては
    右の囲みの上端行が4番の数値の書かれている2行の内の下側の行に一致していますが
    H3の4~7番の処理においては、囲み上端行は4番の数値が書かれている2行の内の下側でなく
    5番の数値が書かれている2行の内の上側に一致していますよね?
    どういう規則性があるのですか?
  • id:noshiroon
    説明が不十分で申し訳ありません。
    H2ですと0.50の平均は4~6番、0.40=7~9番、0.77=16~18番、0.57=18~20番,0.13=21~23番。18番が重複しているのは、18番の1と2行目の真ん中を囲んでいる(=真ん中を切断している)為です。真ん中を囲んでいなければ平均を選ぶ番号が重複する事はありません。H3は0.79=5~7番目が平均値です。
    あくまでも4連続(5行×1), 6連続(5行×2)ですので、5連続(5行×1)
    7連続(5行×2)です。
    6連続以降は+3連続ずつ連続していく毎に囲みが一つずつ増えていきます。
    例:9連続(5行×3)、12連続(5行×4)、15連続(5行×5)、18連続(5行×6)・・・

    囲む位置が不規則に見えるかもしれませんが、H3を見ていただくと、4連続の両端4と7番の数値は7番の方が0に近いので7番の1,2行の真ん中を囲みます。7番の2行目を囲むと8番の数値を選んでいる事(=条件範囲外)になります。
    3連続(5行×1)ではなく4連続(5行×1)なのは上記の理由からです。

    問題解決までお付き合いいただけると大変助かります。
    宜しくお願い致します。
  • id:Silvanus
    ふむふむ、なんとなく解りました…多分完全には理解していないとは思うのですが。
    コードを書いていく内に、不明な点がきっとまた出て来ると思いますので
    またその時に改めて質問させていただきます。
  • id:noshiroon
    お手数おかけしますが宜しくお願いします。
  • id:Silvanus
    すみません、本業多忙のためコード書きに取りかかっておりませんでした。
    囲み2つの7連続や8連続、囲み3つの13連続や14連続など場合、
    それぞれ囲みの間に空くことはありますか?
    例えば7連続の数値の最初3つが一囲み、間1個を不採用とし、
    続く後ろの3つがもう一囲み、というケースがあるのか、あるいは
    囲みが複数の場合は、複数の囲みが全て連続するのか、どちらでしょう?
  • id:noshiroon
    お忙しい中無理させてしまっているようで申し訳ありません。
    回答が間に合わず質問が終了してしまっても気になさらないで下さい。
    再度、質問を入れなおしますので。
    コメント頂いた件ですが、
    7連続でも連続していなければ2囲みにはなりません。
    13,14連続でも囲みの間に空く事はありません。
    最初は4連続でなければ1囲みになりません。3連続ですと条件範囲外の数値も切断する事になってしまいます。
    添付図をみると、条件外の数値(2行のセル)に囲み罫線は触れていないはずです

    説明下手ですみません。




この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません