[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『罫線(下線)の自動入力』(初心者)
あるシステムで管理しているデータをクリップボードでエクセル入力
しています。A列には日付が入るのですが、日付の行数は
不定期です。(一か月分)同じ日付の最終行に下線をH列まで自動で入れる
マクロを作成したいのですがご教授願います。
B列からH列にはデータが入力されています。(空欄もある)
A列・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・H列
2019/10/1
2019/10/1
2019/10/1
< 使用 Excel:Excel2016、使用 OS:Windows7 >
(もこな2) 2019/10/28(月) 17:56
(初心者) 2019/10/29(火) 10:35
それでは、日の部分だけで比較すればよいのでは? もしくはINT関数などで整数部分だけの比較とか。 (コナミ) 2019/10/29(火) 10:38
こんばんは ^^ 横入りすみません エクセル、VBA、【 シリアル値 】 とかで検索すれば、詳しく解説して下さっているサイトが 多数、発見できる事と思います。【日にちは整数、で時刻は少数】 とかその理由とか。。。 気が付いた点だけで済みません、A列の日付が表示されている行に 空白行は存在するのでしょうか、では、 m(_ _)m (隠居じーさん) 2019/10/29(火) 18:48
A列ですが、空白もあります。
(初心者) 2019/10/30(水) 08:08
>A列ですが、空白もあります。
空白だった場合の 罫線のルールは?
(渡辺ひかる) 2019/10/30(水) 08:43
どんどん後だし条件が出てきますね…
>A列ですが、空白もあります。
そのときはどうなると正解なんですか?
「次行と違ったら下罫線を引く」ルールだと罫線引いちゃいますけど。
(もこな2) 2019/10/30(水) 08:44
空白行も対象ということは こんな感じですよ
2019/10/1 2019/10/1 空白行 空白行 空白行 2019/10/2 2019/10/2 空白行 空白行 2019/10/3
これに罫線(***)を引くと
2019/10/1 2019/10/1 *** 空白行 空白行 空白行 *** 2019/10/2 2019/10/2 *** 空白行 空白行 *** 2019/10/3 ***
という感じですか?
(渡辺ひかる) 2019/10/30(水) 10:57
B〜H列までのセルに空白がある場合があります。
(初心者) 2019/10/30(水) 11:25
条件付き書式の数式だけ
=DATE(YEAR(A2),MONTH(A2),DAY(A2))<>DATE(YEAR(A3),MONTH(A3),DAY(A3))
(渡辺ひかる) 2019/10/30(水) 11:41
10/1の後に11/1が来るというようなデータでなければDAY関数で抜き出すだけでも できるかな〜と思っていたのですが、万全を期すなら渡辺ひかるさんや???さんの 回答のように日付全体(時間データなし)を比較するのがいいでしょうね。 (コナミ) 2019/10/30(水) 12:15
渡辺さんひかるさん、罫線は日付が変わった場合、H列まですべて入れたいです。
でも、日付が変わって無くても罫線は部分的ではいったり、はいらなかったりです。
???さん、H列まで罫線入ってOKなのですが、渡辺ひかるさんと同じように入ったりはいらなかったり。
同じデータでやったのですが、罫線の入る位置も違いました。
A列のデータの一部ですが、日付に関係なく罫線が入ります。
2019/10/23 8:00:00
2019/10/23 8:00:00
2019/10/23 19:50:00
2019/10/23 21:55:00
(初心者) 2019/10/30(水) 12:57
A列の表示形式を「標準」に変えたらすべてのデータが5桁の整数+小数の 数値データに変わりますか?
それと念のため条件付き書式に設定した「適用先」と 条件式を書きだしてください。 (コナミ) 2019/10/30(水) 13:29
シート1: =DATE(YEAR(A2),MONTH(A2),DAY(A2))<>DATE(YEAR(A3),MONTH(A3),DAY(A3))
シート2:=INT($A1)<>INT($A2)
それぞれ同じデータで実行しました。範囲はA〜Hでデータのある行です。
(初心者) 2019/10/30(水) 13:49
こちらで検証してから、アップしているので、そちらのデータがおかしいとしか思えません。
既存のデータはとりあえず置いといて、 新規シートで 日付を入れて、条件付き書式を確認してみてください
(渡辺ひかる) 2019/10/30(水) 13:55
渡辺ひかるさんの式は各列ごとに判断することになると思うが。 どの列もA列で判断するのであれば =DATE(YEAR($A2),MONTH($A2),DAY($A2))<>DATE(YEAR($A3),MONTH($A3),DAY($A3)) と列を絶対参照にする必要がある。 (ねむねむ) 2019/10/30(水) 13:58
ねむねむさん フォローありがとうございます。 確かに検証はA列のみでした。
でも(???)さんの数式でも おかしいということは、やっぱりデータ起因でしょうね
(渡辺ひかる) 2019/10/30(水) 14:04
適用先とずれているというのもありそうですね。
書式は下罫線を設定するようにしているのでしょうか? (コナミ) 2019/10/30(水) 14:15
データ、セルの書式、条件付き書式の数式が正しいとなると、うまくいかない理由が判りません。 1つのシートに、下罫線を付ける以外の条件付き書式も含まれていて、それが影響している、なんて事はありませんか?
(過去に、自分の作った間違った条件付き書式を消さずに、教わった条件付き書式を追加して、何も変わらない、と延々QAを繰り返した人が居たもので)
行ずれ。 んー、十分あり得ますね。 私の書いた式はA1とA2を比較するので、1行目からデータの場合ですが、実際は何行目からなのでしょう? 範囲指定した1行目と2行目を比較する式にすればOKなのですが。
(???) 2019/10/30(水) 14:19
(初心者) 2019/10/30(水) 14:22
5行目からなら
=DATE(YEAR($A5),MONTH($A5),DAY($A5))<>DATE(YEAR($A6),MONTH($A6),DAY($A6))
としなければだめです。
(渡辺ひかる) 2019/10/30(水) 14:41
(初心者) 2019/10/31(木) 17:48
Sub さんぷる() Dim MyRNG As Range
With ActiveSheet For Each MyRNG In .Range("A1", .Cells(.Rows.Count, "A").End(xlUp)) If Int(MyRNG.Value) <> Int(MyRNG.Offset(1).Value) Then MyRNG.Resize(, 8).Borders(xlEdgeBottom).LineStyle = True End If Next End With End Sub
複数シートに適用させたいなら「With 【ActiveSheet】」の部分が次々に入れ替わるループを考えればよいです。(アクティブシートを変えていくという力業でもできるでしょうけど・・・)
(もこな2) 2019/10/31(木) 23:43
(初心者) 2019/11/01(金) 10:04
Sub さんぷる()
Dim MyRNG As Range With ActiveSheet For Each MyRNG In .Range("A1", .Cells(.Rows.Count, "A").End(xlUp)) If Int(MyRNG.Value) <> Int(MyRNG.Offset(1).Value) Then MyRNG.Resize(, 8).Borders(xlEdgeBottom).LineStyle = True End If Next End With End Sub
空のシートがあった場合だめですかね?とまってしまいます。
対策を教えていただけませんか?
(初心者) 2019/11/01(金) 13:26
他のスレッドは見ないんでしょうかね
https://www.excel.studio-kazu.jp/kw/20191101092704.html
『2枚目シート以降の全シートに関数を入力したい』(TTT)
なんかは参考になると思いますが
(渡辺ひかる) 2019/11/01(金) 14:11
(初心者) 2019/11/01(金) 14:54
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.