アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルのvbeについてです。
Range(範囲).Interior.ColorIndex=
で範囲の所にA1とか入れると色が付きますよね。
では表頭と、表側(一番左、一番上の列)に色をつけるにはどのようにすればいいのでしょうか。教えてくださると助かります。

A 回答 (5件)

もっと汎用的な物を作ってみました。



---------------------------------------------------------------------------------
Sub 縁色塗り(範囲 As Range, インデックス番号 As Variant, 位置 As String)

Dim 左 As Long
Dim 右 As Long
Dim 上 As Long
Dim 下 As Long

 左 = 範囲.Column
 右 = 範囲(範囲.Count).Column
 上 = 範囲.Row
 下 = 範囲(範囲.Count).Row
 If InStr(位置, "上") <> 0 Then Range(Cells(上, 左), Cells(上, 右)).Interior.ColorIndex = インデックス番号
 If InStr(位置, "下") <> 0 Then Range(Cells(下, 左), Cells(下, 右)).Interior.ColorIndex = インデックス番号
 If InStr(位置, "左") <> 0 Then Range(Cells(上, 左), Cells(下, 左)).Interior.ColorIndex = インデックス番号
 If InStr(位置, "下") <> 0 Then Range(Cells(上, 右), Cells(下, 右)).Interior.ColorIndex = インデックス番号

End Sub
---------------------------------------------------------------------------------
「Call 縁色塗り(Range("B3:G8"), 3, "左上")」のように呼び出します。
位置は「上」「下」「左」「右」を含んだ文字列を指定して下さい
    • good
    • 0
この回答へのお礼

マクロ勉強し始めて右も左もわからない状態だったので図説付きで解説していただき分かりやすかったです。ありがとうございますm(__)m

お礼日時:2019/10/23 21:36

図の緑の枠で囲まれた部分が範囲指定されていたなら



①は「Range(範囲)(1).Interior.ColorIndex =」で済みます。

①+② と ①+③ は
---------------------------------------------------------------------------------
Sub ①と③(範囲 As Range, インデックス番号 As Variant)

Dim 左 As Long
Dim 上 As Long
Dim 下 As Long

 左 = 範囲.Column
 上 = 範囲.Row
 下 = 範囲(範囲.Count).Row
 Range(Cells(上, 左), Cells(下, 左)).Interior.ColorIndex = インデックス番号

End Sub
---------------------------------------------------------------------------------
Sub ①と②(範囲 As Range, インデックス番号 As Variant)

Dim 左 As Long
Dim 右 As Long
Dim 上 As Long

 左 = 範囲.Column
 右 = 範囲(範囲.Count).Column
 上 = 範囲.Row
 Range(Cells(上, 左), Cells(上, 右)).Interior.ColorIndex = インデックス番号

End Sub
---------------------------------------------------------------------------------
上記の様な物を作成して以下のように呼び出します。

Call ①と②(Range("B3:G8"), 3)
Call ①と③(Range("B3:G8"), 3)

もちろん「①と②」「①と③」はもっとスマートな物にしても構いません。
「エクセルのvbeについてです。 Rang」の回答画像4
    • good
    • 0

シアトさん初めまして


表組が確定している場合は、Range(”A1:G1").Interior.ColorIndex=3 等となります。A1は表左上 G1は、色を付けたい表の右側です。
この場合、A1からG1まで色を付けるです。
2行に対してなら、Range(”A1:G2").Interior.ColorIndex=3 となり、A1は一番左の一番上から一番右の最後の行のアドレスになります。

表組が決定していない場合、(可変の場合)は、色を付けるセルを何だかの条件で探しその範囲を変数で代入します。

行が離れていたり、飛んでいる場合は、
Range("A1:D5, C3:D5")や
Range("A1, C3:D5")
のように指定します。
    • good
    • 0

こんにちは!



>表側(一番左、一番上の列)
とは
範囲指定した、一番左の列、一番上の行
だという解釈です。

一例です。
必ず範囲指定した後に↓のマクロを実行してみてください。
(色は「黄色」にしています)

Dim c As Range, r As Range
Sub Sample1() '//列色付け//
 Set c = Selection(1)
 Set r = Selection(Selection.Count)
  Range(Cells(c.Row, c.Column), Cells(r.Row, c.Column)).Interior.ColorIndex = 6
End Sub

Sub Sample2() '//行色付け//
 Set c = Selection(1)
 Set r = Selection(Selection.Count)
  Range(Cells(c.Row, c.Column), Cells(c.Row, r.Column)).Interior.ColorIndex = 6
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0

すみません。

表頭と、表側(一番左、一番上の列)の意味がよくわかりません。
添付画像の赤線のところですか?
あなたがいう表頭と、表側の個所を画像で提示していただけるとありがたいのですが。
「エクセルのvbeについてです。 Rang」の回答画像1
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!