• 締切済み

エクセルのVBAについて教えてください!

VBAの初心者です。 罫線に関するマクロで、以下のようなマクロを作りました。 このマクロを改造して、外枠全体に関して同じことができるように したくていろいろ試してみたのですが、どうしてもできません。 非常に初歩的な質問で申し訳ありませんが、よろしくお願い致します。 Sub 罫線右() With Selection If .Borders(xlEdgeRight).LineStyle = xlNone Then .Borders(xlEdgeRight).LineStyle = xlContinuous Exit Sub End If If .Borders(xlEdgeRight).LineStyle = xlContinuous And .Borders(xlEdgeRight).Weight = xlThin Then .Borders(xlEdgeRight).Weight = xlHairline Exit Sub Else .Borders(xlEdgeRight).LineStyle = xlNone End If End With End Sub

みんなの回答

  • TON-KATSU
  • ベストアンサー率32% (27/84)
回答No.4

ANo.3 です。 私が一部理解していない部分があったので、 記述してみたらそれほど簡単には済まなくなってしまいましたが…以下に書いてみます。 ============================================== '(1)選んだセルの外枠に罫線が引かれていなければ、細線を引く。 '(2)選んだセルの外枠に細線が引かれていれば、極細線を引く。 '(3)それ以外であれば、セルの罫線を削除する。 Sub subA() With Selection '(1)選んだセルの外枠に罫線が引かれていなければ、細線を引く。 If .Borders(xlEdgeLeft).LineStyle = xlNone _ And .Borders(xlEdgeLeft).weight = xlThin _ And .Borders(xlEdgeTop).LineStyle = xlNone _ And .Borders(xlEdgeBottom).LineStyle = xlNone _ And .Borders(xlEdgeRight).LineStyle = xlNone Then Call funcA(xlContinuous) ' ---- X Call funcB(xlThin) '(2)選んだセルの外枠に罫線が引かれていて、かつ細線であれば、極細線を引く。 ElseIf .Borders(xlEdgeLeft).weight = xlThin _ And .Borders(xlEdgeTop).weight = xlThin _ And .Borders(xlEdgeBottom).weight = xlThin _ And .Borders(xlEdgeRight).weight = xlThin Then Call funcA(xlContinuous) Call funcB(xlHairline) '(3)それ以外であれば、セルの罫線を削除する。 Else Call funcA(xlNone) End If End With End Sub 'こちらは罫線を引くだけの処理 '罫線の種類は SubA の方から引き継ぐ。 Private Function funcA(vLine As Variant) With Selection .Borders(xlEdgeLeft).LineStyle = vLine .Borders(xlEdgeTop).LineStyle = vLine .Borders(xlEdgeBottom).LineStyle = vLine .Borders(xlEdgeRight).LineStyle = vLine End With End Function 'こちらは罫線の太さを設定するだけの処理 '罫線の太さは SubA の方から引き継ぐ。 Private Function funcB(vWeight As Variant) With Selection .Borders(xlEdgeLeft).weight = vWeight .Borders(xlEdgeTop).weight = vWeight .Borders(xlEdgeBottom).weight = vWeight .Borders(xlEdgeRight).weight = vWeight End With End Function ============================================== これを、コピペしても動きます。 「Function Aを呼び出す」というのは要するにマクロを2つ作って 「マクロ1の中でマクロ2を呼び出す」という動きをさせます。 ここでは条件分岐のSubAの中で、罫線を引くFuncAと罫線の太さを決めるFuncBを使っています。 こういう書き方をすると応用や修正が楽で便利です。 たとえば条件(1)について、罫線はxlContinuousではなくxlDashにしようとした時、 途中のX部分の行を「Call funcA(xlDash)」に書き換えるだけで済むからです。 また、セルの左側だけに罫線を引くようにしたい時は FuncAとFuncBの中を「.Borders(xlEdgeLeft).LineStyle = vLine」のみにすれば済みます。 特に分岐条件をたくさん増やそうと思った時には こういう記述をしないと、ものすごい行数になってしまうので。。。

  • TON-KATSU
  • ベストアンサー率32% (27/84)
回答No.3

ANo.1 です。 補足で記述していただいた構文ですが ◎If ~ Then の間に「And」あるいは「Or」がないですよ? ◎また、変な所に「Exit Sub」が入っています。通常Exit Subは一番最後に1つあるべきです。 ◎さらに途中の「End If」は「ElseIf」ではないかと思います。 以上を修正してもダメでしょうか?お試しください。 個人的には条件分岐のサブルーチン(Sub A)と 罫線を引くファンクション(Function A)とに処理を分け、 Sub Aの中でFunction Aを呼び出す形にしたいところです。 必要であれば記述しますが…

panda0423
質問者

補足

返信が遅くなってしまい申し訳ありません。 ご回答をもとに下記の通り手直しをしたところ、無事動きました!! ありがとうございます!! なお、「Function Aを呼び出す形」というのが知識不足でよくわから なかったため、よろしければ記述をお願いできますでしょうか? Sub 罫線外枠() With Selection If .Borders(xlEdgeLeft).LineStyle = xlNone And _ .Borders(xlEdgeTop).LineStyle = xlNone And _ .Borders(xlEdgeBottom).LineStyle = xlNone And _ .Borders(xlEdgeRight).LineStyle = xlNone Then .Borders(xlEdgeLeft).LineStyle = xlContinuous .Borders(xlEdgeTop).LineStyle = xlContinuous .Borders(xlEdgeBottom).LineStyle = xlContinuous .Borders(xlEdgeRight).LineStyle = xlContinuous ElseIf .Borders(xlEdgeLeft).Weight = xlThin And _ .Borders(xlEdgeTop).Weight = xlThin And _ .Borders(xlEdgeBottom).Weight = xlThin And _ .Borders(xlEdgeRight).Weight = xlThin Then .Borders(xlEdgeLeft).Weight = xlHairline .Borders(xlEdgeTop).Weight = xlHairline .Borders(xlEdgeBottom).Weight = xlHairline .Borders(xlEdgeRight).Weight = xlHairline Else .Borders(xlEdgeLeft).LineStyle = xlNone .Borders(xlEdgeTop).LineStyle = xlNone .Borders(xlEdgeBottom).LineStyle = xlNone .Borders(xlEdgeRight).LineStyle = xlNone End If End With End Sub

  • don9don9
  • ベストアンサー率47% (299/624)
回答No.2

例えばですが、選択したセルが ・上は細線 ・右は極細線 ・左と下は罫線なし のような場合は、どのような結果にしたいのですか? ・上を極細線にし、右の極細線を消し、左と下は細線を引く ・全てを細線で囲む ・全てを極細線で囲む ・全ての罫線を消す などが考えられますが。

panda0423
質問者

補足

返信が遅くなってしまい申し訳ありませんでした。 ご回答の件に関しまして、実はあまり深く考えておりませんでした。 考えた末、 ・上は細線 ・右は極細線 ・左と下は罫線なし の場合は ・全ての罫線を消す にしようと考えています。ご指摘ありがとうございました。

  • TON-KATSU
  • ベストアンサー率32% (27/84)
回答No.1

マクロの記録ボタンは使ってみたんでしょうか? エクセルメニューで 表示>ツールバー>VisualBasic を選択するとマクロ関連のバーが表示されます。 赤丸のボタン(マクロの記録)を押してOKとすると、マクロ記録状態になります。 ここで1セルを選択して外枠を囲む罫線を引きます。 そしてさっきのボタン部分が四角(記録終了)になっていますので それを押すとそこまでの動作をすべて記録します。 【注意】あらゆる動作がすべて記録されるので、余計なクリックなどは控えましょう。 これでVBエディタを見てみるとさっきの動作が マクロとして記述されているはずです。 キレイな構文ではないですが、参考になると思います。

panda0423
質問者

補足

ご回答ありがとうございます。 マクロの記録ボタンについては一応存じておりまして、マクロを作成 する際には必ず自動記録を実行してからそれを細工しております。 ただ、今回のマクロはセルの状態を判別して、状態によって異なる結果を 返すマクロにしたいと考えておりますので、自動記録だけでは限界がある のかなと考えております。 ちなみに「質問」にあるマクロは、下記のような処理をしております。   もし選んだセルの右側に罫線が引かれていなければ、細線を引く。   もし選んだセルの右側に極細線が引かれていれば、極細線を引く。   それ以外であれば、セルの右側の罫線を削除する。 この内容の「右側」を「外枠」に変えたく、まさに自動記録を参考にして 初めは下記のようなマクロを作ったのですが構文エラーが出てしまい、 自分自身では解決できずに質問させていただいた次第です。 Sub 罫線右() With Selection If .Borders(xlEdgeLeft).LineStyle = xlNone   .Borders(xlEdgeTop).LineStyle = xlNone   .Borders(xlEdgeBottom).LineStyle = xlNone   .Borders(xlEdgeRight).LineStyle = xlNone Then    .Borders(xlEdgeLeft).LineStyle = xlContinuous .Borders(xlEdgeTop).LineStyle = xlContinuous .Borders(xlEdgeBottom).LineStyle = xlContinuous .Borders(xlEdgeRight).LineStyle = xlContinuous  Exit Sub End If .Borders(xlEdgeLeft).LineStyle = xlContinuous .Borders(xlEdgeLeft).Weight = xlThin .Borders(xlEdgeTop).LineStyle = xlContinuous .Borders(xlEdgeTop).Weight = xlThin .Borders(xlEdgeBottom).LineStyle = xlContinuous .Borders(xlEdgeBottom).Weight = xlThin .Borders(xlEdgeRight).LineStyle = xlContinuous .Borders(xlEdgeRight).Weight = xlThin Then      .Borders(xlEdgeLeft).LineStyle = xlContinuous .Borders(xlEdgeLeft).Weight = xlHairline .Borders(xlEdgeTop).LineStyle = xlContinuous .Borders(xlEdgeTop).Weight = xlHairline .Borders(xlEdgeBottom).LineStyle = xlContinuous .Borders(xlEdgeBottom).Weight = xlHairline .Borders(xlEdgeRight).LineStyle = xlContinuous .Borders(xlEdgeRight).Weight = xlHairline  Exit Sub Else   .Borders(xlEdgeLeft).LineStyle = xlNone   .Borders(xlEdgeTop).LineStyle = xlNone   .Borders(xlEdgeBottom).LineStyle = xlNone   .Borders(xlEdgeRight).LineStyle = xlNone End If End With End Sub

関連するQ&A

  • このマクロコードをダイエットするには?

    罫線を引き、配色し、文字に色を付ける。 このコードをどのようにダイエットすればよいのでしょうか? 罫線のマクロはこんなに大きいのですか? Withの使い方がよくわかりません。 よろしくお願い致します。 ------------ Sub Test1() Range("B1:O14").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With With Selection.Interior .ColorIndex = 56 .Pattern = xlSolid End With Selection.Font.ColorIndex = 33 End Sub

  • Excel VBAで罫線を引くマクロを書きたい

    Excel VBAで罫線を引くマクロを書きたいと思っています。 で、文末のコードを書きました。(というかマクロ記録したものほぼそのもの) これだとある程度動くのですが、内側線が無いような範囲を選択した場合にはエラーになってしまいます。 内側の線を引く際にIF文をかまさなければならないように思うのですが、イマイチわかりません。 この点について教えてください。 また、コードが冗長であるようにも思えます。もう少しスマートな書き方があればあわせて教えてください。 よろしくお願いします。 Sub 枠線基本() ' 周囲 With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With ' 内側 With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With End Sub

  • エクセルVBA 行列の数を指定して罫線を引くマクロ教えてください

    下のようにSheet1に罫線を引く「開始セル(左右端)」「行」「列」が書いてあります。 この条件で罫線をSheet2に引くようにしたいのですが、変数の設定の仕方などが分かっていないようで、できません。教えていただけないでしょうか。マクロの記録をとったところ、下のようになりました。よろしくお願いします。 開始セル Sheet2!A1・・・Sheet1のB1セル 行 8・・・Sheet1のB2セル 列 2・・・Sheet1のB3セル Sub borders() Range("A1:B8").Select Selection.borders(xlDiagonalDown).LineStyle = xlNone Selection.borders(xlDiagonalUp).LineStyle = xlNone With Selection.borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With End Sub

  • エクセル マクロ VBA 罫線 文字列

    職場で使う表をVBAマクロを用いて罫線作成をしています。 前任者のアレンジを頼まれたのですが前任者に連絡が取れず困っています。 表の特徴は以下のようになります。 ・A列を飛ばし、B列から2列飛びで文字を記入 ・b2=曜日、b3=1、b4=2、b5=3、b6=4、b7=空白のセットが曜日ごとに2セット×7日分 この表を ・b2=曜日、b3=-3、b4=-2、b5=-1、b6=0、b7=1、b8=2、b9=3、b10=4、b11=空白のセットが曜日ごとに2セット×7日分 に変更したいのですが空欄の場所がずれてしまい上手くいきません。 原本のマクロは以下です。 ---------------------------------------------------------------- Sub 罫線作成() Range(Cells(4, 1), Cells(86, 22)).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone Selection.Borders(xlEdgeLeft).LineStyle = xlNone Selection.Borders(xlEdgeTop).LineStyle = xlNone Selection.Borders(xlEdgeBottom).LineStyle = xlNone Selection.Borders(xlEdgeRight).LineStyle = xlNone Selection.Borders(xlInsideVertical).LineStyle = xlNone Selection.Borders(xlInsideHorizontal).LineStyle = xlNone ch1 = "月火水木金土日" For i = 4 To 76 Step 12 n1 = (i + 8) \ 12 Range(Cells(i, 1), Cells(i + 10, 22)).Select With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With 'Cells(i, 1) = Mid(ch1, n1, 1) For i2 = 2 To 20 Step 3 For i3 = i To i + 10 nb1 = (i3 + 8) Mod 12 If nb1 = 0 Or nb1 = 6 Then Cells(i3, i2) = Mid(ch1, n1, 1) If nb1 = 1 Or nb1 = 7 Then Cells(i3, i2) = 1 If nb1 = 2 Or nb1 = 8 Then Cells(i3, i2) = 2 If nb1 = 3 Or nb1 = 9 Then Cells(i3, i2) = 3 If nb1 = 4 Or nb1 = 10 Then Cells(i3, i2) = 4 Next Next Next End Sub ---------------------------------------------------------------- 4行目から142行目まで使用することは分かっているのですが… どうかご助力お願いします。

  • エクセルでデータがある部分だけ罫線で囲いたいです。

    エクセルでデータがある部分だけ罫線で囲いたいです。 エクセルのファイルを開いて、データのある部分だけを罫線で囲みたいです。 データーは常に列数も行数も違います。 マクロの記録で行ったら、以下のようになりました。 もう少し短い文章ではできないでしょうか? Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2010/9/22 ' Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With End Sub

  • VBA 選択範囲の中で、更に一番上の行を指定したい!

    タイトルの通りです。 選択範囲に罫線を引くマクロを作成しました。 外に太い枠線、中は点線を引き、選択範囲の一番上の行を灰色の塗りつぶしにしたいのです。 しかし、罫線はうまくいきましたが、一番上の行の指定がうまくできません。 Sub 罫線をひく() ' With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlHairline End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlHairline End With ActiveWindow.SmallScroll Down:=12  ←ここを変えたいのですが、どうすればよいかわかりません。 With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorDark1 .TintAndShade = -0.499984740745262 .PatternTintAndShade = 0 End With End Sub どうすればよいか、もしご存知の方がいらっしゃいましたら、ご指導ください。 よろしくお願いたします。

  • 表に罫線を最終列まで引きたい

    windows7 とExcel2007でマクロ作成中の初心者です。 最初に、D2:E34を選んで罫線をひき、列を2列移動して、また罫線を引きます。 これをデータのある最終列まで繰り返したいのですが、うまくいきません。 どうしたらよろしいでしょうか。 Sub 勤怠に罫線() Dim n As Integer For n = 1 To 5 勤怠に罫線 Selection.Offset(0, 2).Select 勤怠に罫線 Next n End Sub 以下はマクロの自動記録でコードを書きました。 Sub 勤怠に罫線() Range("D2:E34").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlMedium End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlMedium End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlMedium End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlMedium End With Selection.Borders(xlInsideVertical).LineStyle = xlNone Selection.Borders(xlInsideHorizontal).LineStyle = xlNone Range("D2:E34").Select End Sub

  • VBAで表作成

    こんにちわ VBAを使い表を作っているのですが、入力フォームで日付を入力しコマンドボタンを押すと別ブックになり、予め用意してある表に入力した日付から1ヶ月の日付が貼り付けるというのをやっています。 マクロを記録し試してみたところ構文エラーが出てしまいました。 日付を貼り付けるところまでできたのですが・・・ 表には線がすでに入っています。 入力された最後の日付のところで太線で表を閉めたいのですができますでしょうか。 構文エラーになったソースを貼り付けます。 Range((4,"i"+12):(10,"i"+12)).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With よろしくお願いします

  • エクセルVBA 作動させる度に罫線の種類を変える

    エクセル(2007) VBAで、マクロを作動させる度に選択した範囲の 罫線を変更したく、下記のようなマクロを組みましたが1種類の線しか書けません。。。 どのように修正すればよいか教えて頂きたいです。 何卒宜しくお願い致します。 ----------------------------------- Sub 罫線チェンジ() Select Case ActiveCell.Borders.LineStyle Case xlContinuous Selection.Borders.LineStyle = xlHairline Case xlHairline Selection.Borders.LineStyle = xlDot Case xlDot Selection.Borders.LineStyle = xlDouble Case xlDouble Selection.Borders.LineStyle = xlNone Case Else Selection.Borders.LineStyle = xlContinuous End Select End Sub -----------------------------------

  • ,最終行からA1の間に罫線を引く方法は?

    お願いします。 罫線を引くマクロを書きました。(下記) 範囲のJ26は最終行です。この表のデータ量は変化します。 最終行がJ26とは限りません。Z5000かもしれません。 その範囲に罫線をひくのですが、マクロ的に最終行を認知してA1 まで罫線を引くマクロをどう記述すればよいのか教えてください。 Sheets("読み込み").Select Range("A1:J26").Select Range("J26").Activate Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Range("J3").Select End Sub