VBA 罫線について
B列3行目から21行毎にデータがはいります。
データがはいったらデータが入った場所に罫線が入るようになっているのですが、B列にデータがはいったら下に17行ずつ罫線をいれたいです。どのように変えたらよいのでしょうか。
ご教示お願いいたします。
Option Explicit
Sub RuleSet1()
Dim I As Long
For I = 1 To Cells(Rows.Count, 2).End(xlUp).Row
If Cells(I, 2) <> "" Then
Range(Cells(I, 2), Cells(I, 3)). _
Borders(xlEdgeBottom).LineStyle = xlContinuous
End If
Next I
End Sub
No.5ベストアンサー
- 回答日時:
!格子ではなく 下罫線でしたね
Dim I As Long
For I = 1 To Cells(Rows.Count, 2).End(xlUp).Row
If Cells(I, 2) <> "" Then
Cells(I, 2).Resize(18).Borders(xlEdgeBottom).LineStyle = xlContinuous
Cells(I, 2).Resize(18).Borders(xlInsideHorizontal).LineStyle = xlContinuous
End If
Next I
Cells(I, 2).Resize(19).Borders(xlInsideHorizontal).LineStyle = xlContin
だけでも良いですかね・・・
No.6
- 回答日時:
No3です。
>「このセルにデータがあった場合に、下17行分に罫線を引く」
>といったことが条件付書式できるのかまた調べてみます。
できるであろうと考えたから、回答しています。
例えば、
「当該セルよりも(自身も含めて)上に17個のセルに何らかの値があれば、下罫線を引く」
という条件で良ければ、
B:C列を選択し、B1セルがアクティブな状態で、
1)「条件付き書式」-「新しいルール」から「数式を使用して~~」を選択
2)下部の数式欄に以下の式を入力
=COUNTA(OFFSET($B$1,MAX(ROW()-17,0),,MIN(ROW(),17)))>0
3)「書式」で下側の罫線を設定し、「OK」を押下げ
で、できると思います。
※ 設定条件が違う場合は、当然、設定する式も変わります。
ありがとうございます。
こんなこともできるんですね…実際にやってみて、驚きました…。条件付書式でできるのは知らなかったのでとても勉強になりました。
No.4
- 回答日時:
>B列の3行目にデータがあった場合、B3〜B20の17行分に下罫線をいれたいです。
ご教示お願いいたします。と言う事はRange(Cells(I, 2), Cells(I, 3))では無いですね
要件仕様に不明な点がありますが
Resizeを使って
Dim I As Long
For I = 1 To Cells(Rows.Count, 2).End(xlUp).Row
If Cells(I, 2) <> "" Then
Cells(I, 2).Resize(18).Borders.LineStyle = True
End If
Next I
で実現可能と存じます
ただ、#3様がご指摘されている
不要罫線の削除や実行トリガーなどが課題として残りますね
罫線の種類やResize、Offsetなどについて調べる事をお勧めします
Borders.LineStyle = True 範囲の格子罫線です
No.3
- 回答日時:
こんばんは
直接の回答ではありませんけれど・・・
どのような使い方をなさるのかわかりませんけれど、ご提示のコードだと罫線を記入するだけで、消すことはしていないので、仮にセルの値を削除しても罫線は残ったままになりますね。
また、マクロだと実行しない限り罫線は反映されません。
思い付き的で申し訳ありませんけれど、
当該シートに「条件付き書式」で罫線を記すように設定しておけば良いのではないでしょうか?
こちらの方法であれば、セルに値を入力すると罫線も即時に反映されますし、マクロを実行する必要もありませんので。
ありがとうございます!!
条件付書式は検索結果に色をつけるといったようなことでしか使用したことがなかったので、思い付かなかったです。
「このセルにデータがあった場合に、下17行分に罫線を引く」といったことが条件付書式できるのかまた調べてみます。
No.2
- 回答日時:
#1です
ついでなのですが、たぶんOffsetで設定するのが好ましいと思います
Offsetで考えると 下記のような考え方が出来、良いように思います
Sub RuleSet_01()
Dim I As Long
Dim r As Range
For I = 1 To Cells(Rows.Count, 2).End(xlUp).Row
If Cells(I, 2) <> "" Then
If r Is Nothing Then
Set r = Range(Cells(I, 2), Cells(I, 3)).Offset(17)
Else
Set r = Union(r, Range(Cells(I, 2), Cells(I, 3)).Offset(17))
End If
End If
Next I
r.Borders(xlEdgeBottom).LineStyle = xlContinuous
End Sub
Unionについては、お調べください
ありがとうございます!!
教えていただいたものですと、17行目(B20)のみに罫線がひかれます。説明不足で申し訳ありません。B列の3行目にデータがあった場合、B3〜B20の17行分に下罫線をいれたいです。ご教示お願いいたします。
No.1
- 回答日時:
こんばんは
読解力が無く申し訳ないのですが、こういう事?
xlEdgeBottomなので
If Cells(I, 2) <> "" Then
Cells(I, 2).Resize(18, 2). _
Borders(xlEdgeBottom).LineStyle = xlContinuous
End If
または
If Cells(I, 2) <> "" Then
Range(Cells(I, 2), Cells(I, 3)).Offset(17). _
Borders(xlEdgeBottom).LineStyle = xlContinuous
End If
Next I
2つの処理コードは、大分意味は違うけれど同じ結果が出ると思います
意味の違いについては
_
Borders(xlEdgeBottom).LineStyle = xlContinuous をselectに変えると
分かると思います
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access 外部データ インポー...
-
outlook本文から項目を選択して...
-
アクセスVBAからエクセルの操作
-
LVMでHDDが壊れた時の対応
-
AS400へAccessから接続す...
-
AccessとOpenOffice:Baseの互換
-
CSVファイルを開いた時の0落ち
-
EXCELの最大データ数
-
BINファイル破損データの復元方法
-
Thunderbirdのインポートの処理...
-
OLE ドラッグアンドドロップの...
-
C#でint型をIntPtr型に変換した...
-
テクトロニクスのオシロスコー...
-
ハイフン無しの電話番号データ...
-
型 varchar から型 numeric へ...
-
アクセスのデータがブッ壊れた...
-
データベースの最適化をマクロ...
-
エクセルの重複データの曖昧検索
-
listener.logが肥大化
-
データベースの2GBって・・・?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スタライズとは、どういう意味...
-
キャッシュとバッファの違いは?
-
CSVファイルの重複チェック
-
C#でint型をIntPtr型に変換した...
-
Access 外部データ インポー...
-
LVMでHDDが壊れた時の対応
-
AS400へAccessから接続す...
-
値がこの列の整合性制約に違反...
-
SQL Server にファイルを登録、...
-
エクセルを取引先に渡したら何...
-
REST APIでkintoneのレコード追...
-
Thunderbirdのインポートの処理...
-
VBでXMLデータをMS-ACCESS2000...
-
テクトロニクスのオシロスコー...
-
自作Androidアプリのデータ引き...
-
EXCELの最大データ数
-
エクセルのマクロ
-
Accessでタブ区切りのテキスト...
-
アクセスVBAからエクセルの操作
-
VBA 罫線について B列3行目から...
おすすめ情報