• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ブック内に会計仕分けの元帳シート(50シートほど))

会計仕分けの元帳シートの二重罫線を引きたい方法

このQ&Aのポイント
  • 会計仕分けの元帳シート(50シートほど)において、各シートの月締め処理のために二重罫線を引きたい方法を教えてください。
  • 具体的には、日付列をロールアップし、最終書き込みセルを探し、そのセルに二重下線を引きたいです。さらに、列A~Gまでをマクロで全元帳シートに適用したいと考えています。
  • 質問内のマクロコードについてもご教示ください。特に、セルの範囲を可変にする方法や、列A~Eにどのようなコードが書かれているかについて教えてください。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

>下記記録は、列A~Eのコードが書かれているのでしょうか? >AとかBとか、Eが見当たらない!? マクロを実行してみるとわかると思いますが 二重下線が引かれるのはA75セルのみでしょう。 Range("A75:A75").Select と指定しているからです。 それとマクロの記録ですので不要な部分が多数記録されています。 上記のマクロを Sub Macro1() Selection.End(xlUp).Select Range("A75:A75").Select Selection.Borders(xlEdgeBottom).LineStyle = xlDouble End Sub だけでもA75セルに二重下線が引かれるはずです。 では A75からG75セルに二重下線を引くには Sub Macro1() Selection.End(xlUp).Select Range("A75:G75").Select Selection.Borders(xlEdgeBottom).LineStyle = xlDouble End Sub では 75ではなくて最終行を探してみます。 Sub Macro1() GYOU=Range("A65536").End(xlUp).Row Range("A" & GYOU & ":G" & GYOU).Select Selection.Borders(xlEdgeBottom).LineStyle = xlDouble End Sub もう少し省略するとしたら Sub Macro1() GYOU=Range("A65536").End(xlUp).Row Range("A" & GYOU & ":G" & GYOU).Borders(xlEdgeBottom).LineStyle = xlDouble End Sub 後は 上記の2行のコードを それぞれのシートに対してシートの数分だけループ処理するわけです。

zaikoman3
質問者

お礼

無事解決です!ありがとうございました。

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

その他の回答 (3)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

tom04さんが全ての回答をしてくれていますね。 VBAの勉強という意味で Sub ボタン3_Click() For i = 1 To ThisWorkbook.Sheets.Count Sheets(i).Activate MsgBox "シートを移動しました" Next End Sub を実行してみてください。 シートが上から順にアクティブになっていきます。 このMsgBox "シートを移動しました"の部分に先に説明した 2行のコードと置き換えて実行してみてください。 コードの丸写しではダメですよ。

すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

No.2です! たびたびごめんなさい。 通常はSheet名をすべてのSheetにつけていらっしゃると思いますので、 前回のコードではたぶんマクロは動かないと思います。 コードを下記のように変更してみてください。 Sub test() Dim i, j, k As Long For k = 1 To Worksheets.Count i = Worksheets(k).UsedRange.Rows.Count For j = 1 To 7 Worksheets(k).Cells(i, j).Borders(xlEdgeBottom).LineStyle = xlDouble Next j Next k End Sub これでSheet名に関係なくすべてのSheetの最終行のA~G列に二重下線が表示されると思います。 何度も失礼しました。m(__)m

すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 一例です。 こんな感じでよいのですかね? ごくごく単純にやってみました。 Sub test() Dim i, j, k As Long For k = 1 To Worksheets.Count i = Worksheets("sheet" & k).UsedRange.Rows.Count For j = 1 To 7 Worksheets("sheet" & k).Cells(i, j).Borders(xlEdgeBottom).LineStyle = xlDouble Next j Next k End Sub 的外れならごめんなさい。m(__)m

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

関連するQ&A