下のように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
No.3ベストアンサー
- 回答日時:
先ず、Sheet1の条件の入れ方を以下のように変えるべきです。
B1 : Sheet2 (シート名)
B2 : A1 (開始セル)
B3 : 8 (行数)
B4 : 6 (列数)
'--------------------------------------
Sub Test()
Dim myRange As Range
With Sheets(Range("B1").Value)
Set myRange = .Range(Range("B2").Value).Resize(Range("B3").Value, Range("B4").Value)
With myRange.Borders
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End With
End Sub
'------------------------------------------
以上。
No.2
- 回答日時:
質問がとてもわかりづらいのですが
> 開始セル Sheet2!A1・・・Sheet1のB1セル
> 行 8・・・Sheet1のB2セル
> 列 2・・・Sheet1のB3セル
Sheet2!A1から、Sheet1のB2にある数値の行、Sheet1のB3にある数値の列までの範囲に罫線を入れるということでしょうか?
それなら、
Sub borders()
Dim r As Integer, c As Integer
With Sheets("Sheet1")
r = .Range("B2").Value
c = .Range("B3").Value
End With
With Sheets("Sheet2")
With .Range(.Cells(1, 1), .Cells(r, c)).borders
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End With
End Sub
でどうでしょう?
No.1
- 回答日時:
>行列の数を指定して罫
どういう風な範囲指定をするのか。
>Range("A1:B8").Select
のところを相対化するのだろうが、どういう風に指定するのか
左上隅セル+行数+列数
ぐらいしか指定の方法がないかな
左上隅セル=C4
行数=5
列数=3
なら
Sub test02()
leftSUMIC = "C4"
r = Range(leftSUMIC).Row
C = Range(leftSUMIC).Column
Range(Cells(r, C), Cells(r + 5 - 1, C + 3 - 1)).Select
End Sub
===
しかし上記のようなことより、Application.Inputboxの Type:=8
(範囲をユーザー指定)を検討してはどうでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) オートフィルタで抽出結果に 罫線をひく方法 1 2022/07/13 13:08
- Visual Basic(VBA) VBA 罫線について B列3行目から21行毎にデータがはいります。 データがはいったらデータが入った 6 2022/11/15 17:22
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) 複数セルに〇印をつけるマクロ 4 2022/09/07 05:33
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SUMIF関数で、「ブランク以外を...
-
文字列から英数字のみを抽出す...
-
エクセル1行おきのセルを隣の...
-
自分の左隣のセル
-
EXCELでマイナス値の入ったセル...
-
エクセルで、指定の値よりも大...
-
エクセルで年月日から月日のみへ
-
excelで、空白を除いてデータを...
-
Excelで離れた位置のAVERAGEを...
-
エクセルで特定のセル内にだけ...
-
セルを結合した時のエクセル集...
-
Excelで大量のセルに一気に関数...
-
エクセルに入力後、別シートの...
-
エラー「#REF」の箇所を置き換...
-
条件付き書式の色付きセルのカ...
-
EXCELのcountif関数での大文字...
-
エクセル関数またはVBAについて
-
エクセル、○が連続する回数を数...
-
同一セル内の重複文字を削除し...
-
エクセル関数/任意の桁数の数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SUMIF関数で、「ブランク以外を...
-
文字列から英数字のみを抽出す...
-
エクセル1行おきのセルを隣の...
-
自分の左隣のセル
-
エクセルで、指定の値よりも大...
-
excelで、空白を除いてデータを...
-
セルを結合した時のエクセル集...
-
エクセルで、A2のセルにA3...
-
エクセルで年月日から月日のみへ
-
エクセルに入力後、別シートの...
-
【Excel】4つとばしで合計する方法
-
Excelで大量のセルに一気に関数...
-
エクセルで特定のセル内にだけ...
-
EXCELのcountif関数での大文字...
-
EXCELでマイナス値の入ったセル...
-
条件付き書式の色付きセルのカ...
-
エラー「#REF」の箇所を置き換...
-
Excelで離れた位置のAVERAGEを...
-
同一セル内の重複文字を削除し...
-
週の労働時間を計算するエクセル
おすすめ情報