[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『データの区切れ目に2重線』(ハナダ)
お世話になります。お伺いしたいのですが、VBAで、 データとデータの間に罫線の二重の線を引いていくことはできますでしょうか?
セルは、Cell(4,19)までが見出しです。 それ以降、Cell(行,19)のデータが入っている行まで
For 行 = 5 to Range("A65536").End(xlUp).Row - 1
です。
データの区切りなんですが、 A列には、
1001000333と、10桁で、 1001000までが同じだと同じデータとして、区切り線を入れたいです。 二重線以外のところは一本線です。
1001000111 1001000222 ======================二重線 1001020111 1001020222 1001020333 ====================== 1001300333 1001300222
VBAで出来れば教えていただきたいのですが、どなたかご教授ください。 コードは初心者でよく分かっていませんが、下記のコードを書いてみました。
Dim 行 For 行 = 5 to Range("A65536").End(xlUp).Row - 1 Range("A"&行&":S"&行).Select If Range("A"&行).Value<>Range("A"&行+1).Value Then 'ここがわかりません↑
With Selection.Borders(xlEdgeBottom) .LineStyle=xlDouble .Weight = xlThick .ColorIndex = xlAutomatic End With Else With Selection.Borders(xlEdgeBottom) .LineStyle=xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With End If Next End Sub
Excel2003,WindowsXP
VBA でもできると思いますが、条件付き書式でどうでしょうか。 A列を選び、条件付き書式の数式で =INT(A1/1000)<>INT(A2/1000) 書式を下線にすれば良いと思います。
VBA でやる時も、考え方は一緒だと思います。 (Mook)
>'ここがわかりません Left$関数を調べてみましょう。 (とおりすがり)
条件つき書式は他にも沢山使ってますので今回はマクロにしたいと思いましたが、 Mook様の教えてくださったので、そーいうのもあるんだ!と勉強になりました。 とおりすがり様のヒントを得てLEFT関数で調べたら出来ました。 正直、最初はコードを教えてほしいな〜ってちょっと甘えてましたが、自分で調べて出来たのでかなりうれしいです。 (最近、こーいう話、ちょっとした話題になってますよね・・・。お恥ずかしい限りです。) Mook様、とおりすがり様、どうもありがとうございました。(ハナダ)
ご自身で解決できてよかったですね。 きっと動くコードを教えてもらった 100倍の価値があると思います。 (冗談ではなく、ほんとにそのくらいだと思います。)
回答していて好ましいと思えるのは、質問者のできる範囲での努力の様子が見える ときです。たとえ、初心者でも上達したいというものであれば、最後まで協力したい という気持ちになります。
逆に解答したくなくなるのは、「やってください。」という姿勢だけのものですね。 このような質問は、よほど題材に興味がなければ、スルーさせていただいています。
まぁ、ネットとはいえやはり人どうしのコミュニケーションの場ですから、基本は 実生活と同じことだと思います。
最後に、Left と 除算の私見です。 今回の場合はどちらでも同じ結果になりますが、これはデータが10桁という制約が あるのでこれで問題ありませんが、桁がまちまちであれば同じ左から6桁でも意味が 異なることになります。その際はご注意ください。
あとは、大昔に プログラミングをやっていた経験から数値演算より文字列演算の 方が処理が遅いという感覚があるので、私は数値処理でできる場合はそちらを優先 しています。 昨今の PC 性能の進歩を見れば、もはやそのようなことはあまり気にしなくとも、 良い時代いなったとは思いますが、何分もかかる処理であれば、やはり数%〜数十%の 差にはなると思いますので、頭の片隅に留めておかれるとよいかと思います。 (Mook)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.