エクセルマクロで困っています。
セルの範囲指定をしようとしています。
初心者過ぎて、よくわかりません。
現在のマクロ↓
Sub 済()
If ActiveCell.Column = 21 Then
Selection.FormatConditions.Delete '条件付き書式削除
With Selection.Interior
.ColorIndex = 16
.Pattern = xlSolid
End With
ActiveCell.Offset(0, 1).Select
With Selection.Interior
.ColorIndex = 16
.Pattern = xlSolid
End With
ActiveCell.Offset(0, 1).Select
With Selection.Interior
.ColorIndex = 16
.Pattern = xlSolid
End With
ActiveCell.Offset(0, 1).Select
With Selection.Interior
.ColorIndex = 16
.Pattern = xlSolid
End With
ActiveCell.Offset(0, 1).Select
With Selection.Interior
.ColorIndex = 16
.Pattern = xlSolid
End With
ActiveCell.Offset(0, 1).Select
With Selection.Interior
.ColorIndex = 16
.Pattern = xlSolid
End With
ActiveCell.Offset(0, 1).Select
With Selection.Interior
.ColorIndex = 16
.Pattern = xlSolid
End With
ActiveCell.Offset(0, 1).Select
With Selection.Interior
.ColorIndex = 16
.Pattern = xlSolid
End With
ActiveCell.Offset(0, 1).Select
With Selection.Interior
.ColorIndex = 16
.Pattern = xlSolid
End With
'色変え判定セル書き換え
ActiveCell.Offset(0, 5).Select
ActiveCell.FormulaR1C1 = "77"
ActiveCell.Offset(0, -5).Select
Else
answer = MsgBox("U列を選択して下さい", vbCritical)
End If
End Sub
やりたい事は、下記の通りです。
列Uがアクティブの時にU~ACの行を塗りつぶし。
列は変動します。
今は、やり方がよく分からなかったため
オフセットで一つ一つ塗りつぶしてます。
マクロを組みすぎてファイルが重くなって困っています。
回答よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
まとめてみました
Sub 済1()
Dim answer
If ActiveCell.Column = 21 Then
Selection.FormatConditions.Delete '条件付き書式削除
With Selection.Resize(, 9).Interior
.ColorIndex = 16
.Pattern = xlSolid
End With
'色変え判定セル書き換え
ActiveCell.Offset(, 13).FormulaR1C1 = "77"
ActiveCell.Offset(, 8).Select
Else
answer = MsgBox("U列を選択して下さい", vbCritical)
End If
End Sub
No.2
- 回答日時:
何をしたいか全体像が見えないので、とりあえず提示された コードと同じ結果が得れるコードを書きます。
Sub test()
Dim r As Long, c As Integer, answer
r = Selection.Row
c = Selection.Column
If c = 21 Then
With Range(Cells(r, c), Cells(r, c + 8)).Interior
.ColorIndex = 16
.Pattern = xlSolid
End With
'色変え判定セル書き換え
Cells(r, c + 13).Value = "77"
Cells(r, c + 8).Select
Else
answer = MsgBox("U列を選択して下さい", vbCritical)
End If
End Sub
以上ですが、繰り返しのところの範囲を一括して選択すればOKです。
他にしたいことがあればコメントしてください。
ありがとうございます。
やっぱり分かりにくかったですか。。
さっき試してみましたができました!
大変、勉強になりました。
ありがとうございました。
No.1
- 回答日時:
>列は変動します。
どのように変動するのでしょうか?
書かれたマクロではよく解りませんが・・・。
「色替え判定」の部分は解りませんが、下記でいかがでしょうか?
セルが決まっているなら、「済2」の方が解りやすいでしょう。
Sub 済()
If ActiveCell.Column = 21 Then
Selection.FormatConditions.Delete '条件付き書式削除
For i = 21 To 29
ActiveSheet.Columns(i).Select
With Selection.Interior
.ColorIndex = 16
.Pattern = xlSolid
End With
Next
'色変え判定セル書き換え
ActiveCell.Offset(0, 5).Select
ActiveCell = "77"
ActiveCell.Offset(0, -5).Select
Else
answer = MsgBox("U列を選択して下さい", vbCritical)
End If
End Sub
Sub 済2()
If ActiveCell.Column = 21 Then
Selection.FormatConditions.Delete '条件付き書式削除
ActiveSheet.Columns("U:AC").Select
With Selection.Interior
.ColorIndex = 16
.Pattern = xlSolid
End With
'色変え判定セル書き換え
Range("AH1") = "77"
Range("AC1").Select
Else
answer = MsgBox("U列を選択して下さい", vbCritical)
End If
End Sub
すいません。
列が変動というのは・・
U列の中でアクティブセルが変動するって事です。
アクティブセルを含む、U~ACを塗りつぶしで・・
U1がアクティブで実行した場合は・・
(U1:AU1)としたかったのです。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Excel(エクセル) エクセルでの左のセルのコピー 3 2022/07/25 12:31
- Excel(エクセル) エクセルマクロで教えてください 2 2022/05/04 09:07
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) VBA シート上にドロップダウンリストを作り、予め指定値をセットしたいのですが 1 2023/03/25 15:15
- Excel(エクセル) EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。 2 2022/05/24 09:43
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel ウインドウ枠の固定をす...
-
エクセルで特定の文字列が入っ...
-
エクセル マクロ オートフィ...
-
【Excel関数】UNIQUE関数で"0"...
-
Excel グラフのプロットからデ...
-
[EXCEL]ボタン押す→時刻が表に...
-
特定の文字がある行以外を削除...
-
エクセルVBA 最終行を選んで並...
-
excelのデータで色つき行の抽出...
-
Excel2007で、指定範囲の行高さ...
-
エクセルVBAのEntireRow.Hidden...
-
EXCELマクロを使い、空白行では...
-
エクセルで昨日までの日付デー...
-
エクセルのマクロで意図しない...
-
セルではなく行や列、シート全...
-
エクセル マクロで数値が変っ...
-
【EXCEL】連続データの個数を抽...
-
エクセル マクロ等を利用した各...
-
エクセル 上下で列幅を変えるには
-
【マクロ】book1からbook2への...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
エクセル マクロ オートフィ...
-
【Excel関数】UNIQUE関数で"0"...
-
結合されたセルをプルダウンの...
-
[EXCEL]ボタン押す→時刻が表に...
-
excel 小さすぎて見えないセル...
-
AのセルとB行を比較して、一致...
-
エクセル マクロで数値が変っ...
-
エクセル 上下で列幅を変えるには
-
excelのデータで色つき行の抽出...
-
Excel グラフのプロットからデ...
-
エクセル2016で時間を入力して...
-
VBAで色の付いているセルの行削除
-
特定の文字がある行以外を削除...
-
連続データが入った行の一番右...
-
エクセルVBA 最終行を選んで並...
-
エクセルのセルに指定画像(.jpg...
-
エクセルで昨日までの日付デー...
-
エクセルマクロで偶数行(又は...
-
A1に入力された文字列と同じ文...
おすすめ情報