- ベストアンサー
EXCELVBAで表にカンマ・罫線を自動で入れる方法
- EXCEL2013とWindows7で、特定の表にカンマ・罫線を自動で入れたい場合、VBAを使用することで実現することができます。
- 担当者と区分をもとに、特定の列にカンマを表示させることができます。また、担当者ごとに太枠で囲むことも可能です。
- ご忙しい中恐れ入りますが、ロジックを教えていただけると幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
最初、A~Jを何度も列だと間違えていました。そのため「A~Fまでカンマ表示」を失念してしまいました。 添付図をよく見ると「G~J」列は小数点2桁ですね。 一括にカンマを設定していた処理を担当者ごとにしました。 Sub 罫線() Dim columnsCnt As Integer '列数 Application.ScreenUpdating = False Range("A1").CurrentRegion.Select With Selection columnsCnt = .Columns.Count '罫線 .Borders.LineStyle = xlContinuous End With Dim rw As Long '行カウンタ With Range("A2") While .Offset(rw, 0) <> "" 'カンマ(設定箇所を修正) With Range(.Offset(rw, 2), .Offset(rw + 5, columnsCnt - 1)) .Style = "Comma [0]" End With With Range(.Offset(rw, 0), .Offset(rw + 9, columnsCnt - 1)) '担当者ごとに囲む .Borders(xlEdgeLeft).Weight = xlMedium .Borders(xlEdgeTop).Weight = xlMedium .Borders(xlEdgeBottom).Weight = xlMedium .Borders(xlEdgeRight).Weight = xlMedium End With rw = rw + 10 Wend End With Range("A1").Select Application.ScreenUpdating = True End Sub
その他の回答 (1)
- nishi6
- ベストアンサー率67% (869/1280)
こんな感じでしょうか。標準モジュールです。(Excel2010) Sub 罫線() Dim columnsCnt As Integer '列数 Application.ScreenUpdating = False Range("A1").CurrentRegion.Select With Selection columnsCnt = .Columns.Count '罫線 .Borders.LineStyle = xlContinuous 'カンマ .Offset(1, 2).Resize(.Rows.Count - 1, .Columns.Count - 2).Select Selection.Style = "Comma [0]" End With Dim rw As Long '行カウンタ With Range("A2") While .Offset(rw, 0) <> "" With Range(.Offset(rw, 0), .Offset(rw + 9, columnsCnt - 1)) '担当者ごとに囲む .Borders(xlEdgeLeft).Weight = xlMedium .Borders(xlEdgeTop).Weight = xlMedium .Borders(xlEdgeBottom).Weight = xlMedium .Borders(xlEdgeRight).Weight = xlMedium End With rw = rw + 10 Wend End With Range("A1").Select Application.ScreenUpdating = True End Sub
補足
nishi6さん、ご連絡ありがとうございました。 お返事が遅くなりまして大変申し訳ございませんでした。 細かなロジックをご提示いただきましてありがとうございました! 早速試してみたのですが、私のやり方がまずいのか、区分A~Fのみカンマ表示にしたかったのですが、A~Jまで全てカンマが入ってしまいました・・・ 何度も申し訳ありません。。
お礼
nishi6さん、ご連絡ありがとうございました! ご教授いただきました方法で理想通りの結果になりました!! このたびは何度も細かなご説明いただきまして本当にありがとうございました!!助かりました。