VBAでセルの罫線の引き方が分からず、相談させてください。
売上や案件などを月ごとにシートを分けて管理しています。
データ入力する際に空白行が無くなった場合、自動で空白行を挿入するようコードを組みました。
しかし以下のコードが実行された時、空白行は追加されるのですが罫線や書式などがリセットされてしまいます。
.Borders等で罫線が引けることは調べて分かったのですが、その部分のコードの書き方がわかりません。
Target.Rowで空白行の追加された行番号を取得するのか、それとも他に方法があるのか・・・
ご教示いただけますと幸いです。よろしくお願い致します。
【自動で空白行を追加するコード】
'セルにデータ入力時の処理
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'シート名に"月"が含まれるシートの場合の処理
If InStr(ActiveSheet.Name, "月") >= 1 Then
'セルに"COUNT"関数が含まれている場合の処理
If InStr(ActiveCell.Formula, "COUNT") > 0 Then
'空白行を追加する
Target.Offset(1).EntireRow.Insert Shift:=xlDown
End If
Else
'シート名に"月"が含まれないシートの場合
Exit Sub '何もせず
End If
End Sub
No.3ベストアンサー
- 回答日時:
こんばんは
複数のシートで行いたいと言う事なのでしょうか、
Workbook_SheetChange を使われたのですね
ActiveCellを使われているようですが、Enterキーの移動設定や範囲選択での入力時に上手くいかない可能性があるのではないでしょうか
Targetを基準にOffsetで数式セルを特定する方が安全かも知れません。。
安全と言いますと・・付け加えますがChangeなので
個別シートのイベント抑制も考慮して
Application.EnableEvents などを設定しておく必要があると思います。
コードについては#1様の案が良いと思いますが・・罫線は問題ですね
ちょっと試しに書いて見ますが・・不十分ですかね
新たな実行の条件は入力セルの空白に囲まれた範囲が表の列範囲をカバーしている事です・・上のセル範囲が詰まっていれば良いことになりますが、どうでしょう?
可変でなければ、指定してしまう事で回避できますが複数シートで多分条件が違うかな・・
一例 (色など不十分かな)
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim b As Object, lCol As Long
'シート名に"月"が含まれるシートの場合の処理
If InStr(Sh.Name, "月") >= 1 Then
'セルに"COUNT"関数が含まれている場合の処理
If InStr(Target(1).Offset(1).Formula, "COUNT") > 0 Then
Application.EnableEvents = False
'CurrentRegionのカラム範囲№を取得
lCol = Target(1).CurrentRegion.Item(1).Column
'罫線の取得
Set b = Target(1).Borders(xlEdgeTop)
'行をコピー
Target.EntireRow.Copy
'コピー行を追加する
Target.Offset(1).EntireRow.Insert Shift:=xlDown
'値をクリアー
Target.Offset(1).EntireRow.ClearContents
'罫線の設定(可変列範囲・・列№を指定すれば解り易い
'Target(1).Offset(1, lCol - Target(1).Column) 新規に挿入された行の表下一番左のセル
'Resize(1, Target(1).CurrentRegion.Columns.Count) CurrentRegionの列数で拡張
With Target(1).Offset(1, lCol - Target(1).Column).Resize(1, Target(1).CurrentRegion.Columns.Count)
.Borders(xlEdgeTop).LineStyle = b.LineStyle
.Borders(xlEdgeTop).Weight = b.Weight
Set b = Nothing
End With
Application.EnableEvents = True
End If
Else
'シート名に"月"が含まれないシートの場合
Exit Sub '何もせず
End If
End Sub
ご回答ありがとうございます。
Application.EnableEventsの設定は仰る通り、設定したほうがいいと感じました。
私の記載したコードですと色々足らなすぎるようで、とんでもなく行がコピーされたりしていたので・・・
Qchan1962様の記載いただきましたコードを基に、肉付けをしていこうと思います!
試しに動かしている状態ですが、何も問題もなくやりたいことができているので、ほとんど完璧だと思います!
ありがとうございました!
No.2
- 回答日時:
こんにちは。
テーブルに変換してしまった方がデータ追加に際して書式設定や関数の引き継ぎをコードレスでできると思いますよ。
Youtube で excel テーブル を調べてみて。
ソースにあるように条件がある場合は、本回答はスルーして下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの条件付き書式設定の太い...
-
Excelの外枠太罫線を2~3倍さ...
-
EXCELで、下線の太さを変...
-
罫線の色を薄くしたい
-
エクセルのアンダーラインについて
-
エクセル
-
excel2003 罫線だけを保護したい
-
【エクセル】謎の枠線の消し方
-
エクセルで罫線も一緒に並び替...
-
パワーポイントで、表の一部を...
-
Excelでアンダーラインに文字が...
-
エクセル の縦線
-
エクセルで文字を入力すると罫...
-
決まった罫線のなかで、文章入...
-
EXCELのオートフィルタで罫線が...
-
エクセル表の罫線(縦)が消せ...
-
OpenOfficeのCalcで罫線の削除...
-
エクセルを印刷すると勝手に線...
-
エクセル 入力されていない線...
-
勝手に背景に色が付いて困っ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの条件付き書式設定の太い...
-
Excelの外枠太罫線を2~3倍さ...
-
excel2003 罫線だけを保護したい
-
罫線の色を薄くしたい
-
EXCELで、下線の太さを変...
-
エクセルで文字を入力すると罫...
-
エクセルで罫線も一緒に並び替...
-
【エクセル】謎の枠線の消し方
-
エクセルのアンダーラインについて
-
エクセル
-
パワーポイントで、表の一部を...
-
決まった罫線のなかで、文章入...
-
EXCELのオートフィルタで罫線が...
-
エクセル 入力されていない線...
-
エクセル表の罫線(縦)が消せ...
-
Excelでアンダーラインに文字が...
-
エクセル の縦線
-
罫線が引かれているセルの個数...
-
勝手に背景に色が付いて困っ...
-
条件付き書式で自動で斜線の罫...
おすすめ情報