• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCELVBA 自動で表にカンマ・罫線を入れたい)

EXCELVBAで表にカンマ・罫線を自動で入れる方法

このQ&Aのポイント
  • EXCEL2013とWindows7で、特定の表にカンマ・罫線を自動で入れたい場合、VBAを使用することで実現することができます。
  • 担当者と区分をもとに、特定の列にカンマを表示させることができます。また、担当者ごとに太枠で囲むことも可能です。
  • ご忙しい中恐れ入りますが、ロジックを教えていただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.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

yakkun2338
質問者

お礼

nishi6さん、ご連絡ありがとうございました! ご教授いただきました方法で理想通りの結果になりました!! このたびは何度も細かなご説明いただきまして本当にありがとうございました!!助かりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

こんな感じでしょうか。標準モジュールです。(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

yakkun2338
質問者

補足

nishi6さん、ご連絡ありがとうございました。 お返事が遅くなりまして大変申し訳ございませんでした。 細かなロジックをご提示いただきましてありがとうございました! 早速試してみたのですが、私のやり方がまずいのか、区分A~Fのみカンマ表示にしたかったのですが、A~Jまで全てカンマが入ってしまいました・・・ 何度も申し訳ありません。。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCEL VBA 自動で8行毎に行を挿入したい

    お世話になります。 添付左図のような表があります。 この表をボタンをクリックしたら右図の表の様にするためのVBAロジックをご教授いただけませんでしょうか?(右図の黄色部分の行を自動で挿入したいのです) この表は担当者一人に対して売上区分というものをA-Hまで設けているため、一人のデータが必ず8行になります。 担当者数は現在は100名程度ですが、その都度変わるため可変にしたいです。 この担当者毎に8行あるデータを、ボタンを押したら新規に下行を挿入して[A+B]、続けて下行を挿入して[C+D]、[E+F]、[G+H]という具合に行を挿入する動作を全担当者のデータに全てに対して実施したいのです。 どなたかご教授いただけますでしょうか? よろしくお願い致します。 環境 windows XP SP3 Excel2003

  • 共通の値をもつ座標の組み合わせについて

    左図のような表があるときに、共通の値"1"を持つ座標の組み合わせを右図のように表示できるVBAを作ることができないかということで考えているところです。 右図の説明をすると 2行目にある 1 2 5 7は 左図 (1行,2列)のところに1、(1行,5列)のところに1、(1行,7列)のところに1、(2行,5列)のところに1、(2行,7列)のところに1、(5行,7列)のところに1 というように 1 2 5 7 のどの組み合わせを選んでも必ず1がある組み合わせです。 以下右図3行目以降も同じような形で表示されています。 VBAに詳しい方からのお知恵を拝借することができれば幸いです。よろしくお願いします。

  • エクセル 2つの表を1つの表に空白行を詰めて表示

    B列~D列に表AがありF列~H列に表Bがあります。 2つの表をJ列~L列に空白行を詰めて表示される方法を教えてください。 サンプル表を添付します。 よろしくお願いします。

  • エクセルの表ををメモ帳などにカンマで区切って一列に表記

     はじめまして。よろしくお願いします。  エクセルで、列に2項目、行が20行の表があります(セル:A1~B20)。 この表のそれぞれの行をカンマで区切って横並べしてテキスト表示 したいのですが、一括で行う方法はないでしょうか。 つまり エクセル A1 B1 A2 B2 ・ ・ ・ A20 B20 で表されたものを以下のようにテキスト表記したいのです。 A1 B1,A2 B2,・・・,A20 B20

  • Word2000での表作成

    Word2000での表作成について質問させていただきます。 表に数字を6桁入力したあとから、3桁区切りのコンマや表示形式のユーザー設定で「円」を表示させるのはどのような操作をすれば良いでしょうか? また、A1からF1まで数字を入力し、G1に平均を出す操作も教えてください。 よろしくお願いいたします

  • データベースを別の表に自動で表示したい

    エクセルで作ったデータベース、例えば住所録を別のシートに作った 表に自動で表示させ、印刷したいのですが。 A1 ○さん B1 生年月日 C1 住所 A2 ×さん B2 生年月日 C2 住所 以下、200件ほどあります。 別のシートの表は人数分あるのではなく1つで、チェックを入れたりすることで、その人の分が次々と印刷されていくようなものを作りたいのですが、そのようなことがエクセルで可能でしょうか? マクロを設定しないといけないでしょうか?アクセスではできないですか?

  • Excelで勤務表を作成しています(再)。

    (前回までの投稿において質問の意図が分かりづらかったため、質問文と添付図を一部修正の上、再投稿させて頂いております) Excelで勤務表を作成しています。添付図のように、設定シートには社員表と勤務区分の表を作成しており、勤務表シートには社員名と日付毎の勤務区分を入力できる様式です。 今回の目的は、1日毎の女性用勤務(F勤務)における特定の区分(A、A研、B、B研、C、C研)をカウントしたいというものです。 例では7人程度のものですが、実際は数十人規模になるため、カウントセルが必要になりました。 例えば、F勤務が適用されているのは小野寺、高橋、山田、小林で、1日においてA、A研、B、B研、C、C研が入力されているのは小野寺、山田、小林の3人なのでE9セルには3とカウントされるようにしたいです (2以下OKという表記は無視してください)。 つきましては、E9~G9セルにはどのような関数を組み合わせればこの仕組みができますでしょうか?なお、勤務表は印刷して配布する都合上、この体裁を崩さないでやりたいです。ただ、どうしても必要な部分があればご指摘下さい。 以前に教えて頂いたSUMPRODUCTや、COUNTIF等の組み合わせを考えてみたのですが発想が出てこずに困っております。お分かりの方ご教授下さい。よろしくお願い致します。

  • 数式の中の値にカンマをつけたいのですが…

    ある表で件数とその一件一件の数値の合計を同時表示させるために下記のような数式を入力しています。 「=COUNT(F1:F10)&"件 "&SUM(F1:F10)&" 円"」 と入力すると 「14 件 1581680 円」 という具合に表示されるのですが、この合計数字を 「14 件 1,581,680 円」 というふうにカンマをいれて表示させたいのですができません。どなたか御指導をお願い致します。

  • 数学(?)のことでお聞きしたいのですが。(再)

    関数 y=ax+b (各変数の定義は省略させてください。) について考えます。a=9 のとき、添付データ左図において、対称線(赤)・区分線(青) を引くことができます。ただし、各セルの値を y 、y の桁数を k とし、桁数が k に満たない場合、0を先頭に付加します。 このような対称性は、数学のどの分野と関わり合いがあるのでしょうか?どなたか教えて下さい。 また、添付データ右図において、a=9 以外の場合で、a=7 のとき(特に意味はありません。別の数でもよかったんですが、なんとなくです。)、強引ですけど線を引くことはできます。 添付データにはありませんが、k= 3,4,5,6,7,・・・・・としたときも、線を引くことはできます。 y=ax2+bx+c についても線を引くことはできると思います。(xの2乗として読んでください。) もし数学と関係ないときは、すみません。

  • エクセル2013で表の組み替え

    エクセル2013で表の組み替え エクセル2013で表の組み替えのしかたを教えてください。 勤務表のイメージです。 下の例で、A2からA7までは担当者名(実際はもっと多く)、B1からF1までは日付(架空の例として5日まで)、B2からF7までに担当箇所(実際はもっと多く)がはいります。 1つの担当箇所に2人以上がはいることもあり得ます(見習、応援など)。 この上の表を、下の表のようにかんたんに組み替えたいのです。 下の表では、A2からA11までは担当箇所(2人以上はいることもあるので同一担当箇所の行が2行以上にふえることもあり得ます)、B1からF1までは日付、B2からF11まで担当者名です。 このような組み替えは、関数でやるのでしょうか、それともVBAでしょうか? それとも(使った事はなくて勉強しなければなりませんが)データベースソフトのアクセスで処理すべき事でしょうか? 手作業でコピーするのが大変なのでどうか教えてくださいませ。

専門家に質問してみよう