
初心者です。
エクセルのあるボタンを押すと指定のセルが黄色、
またあるボタンを押すと指定のセルがグレーになるようにしたいです。
指定のセルというのが、
2行のセルが統合されています。
また、ボタンを付けたいのはTの行、
色を変えたいのはそのTのボタンがあるところの左全部()AからSの列)です。
その時々で、いろを変えたい行がちがうので、
T行の上に黄色、下にグレーボタンを作り、
いずれかのボタンを押すとその左側全部いろを変えれるようにしたいのです。
説明が下手ですみません。
お力を貸してください。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
こんにちは、
>黄色、黄色、透明になってしまいます。
これは、エラーが発生しているためです。
Interior.ColorIndex = 6 (黄色) この6は、カラーインデックスの6番を指しています。
RGBでこれを指定する場合は、Interior.Color カラーで直接指定します。(インデックスではありません)
該当箇所を書き換えると、、になります。
Select Case Number
Case 0
Rng.Interior.Color = RGB(255, 255, 0) ’黄色
Number = 15
Case 15
Rng.Interior.Color = RGB(217, 217, 217) ’グレー
Number = 1
Case Else
Rng.Interior.ColorIndex = 0
Number = 0
End Select
RGBの見本は、検索すると多くヒットすると思いますので参考にされてください。
No.3
- 回答日時:
追記します。
補足での条件で実行する場合、内容の理解は、必要が出た時に学習してください。
T列のセルにボタンが設置されR列の結合セル行に準じ色がつけられます。
R列の行結合範囲は、任意の行数でOK、ボタンは、対応R列結合セル範囲内に設置する
Sub Smple()
Static Number As Long
Dim r As Long, r1 As Long, r2 As Long
Dim MrgCel As String
Dim Rng As Range
On Error Resume Next
r = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
MrgCel = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address
If Range(MrgCel).Offset(, -2).MergeArea.Count > 0 Then
r1 = Range(MrgCel).Offset(, -2).MergeArea(1).Row
r2 = r1 + Range(MrgCel).Offset(, -2).MergeArea.Rows.Count - 1
Set Rng = Range("A" & r1 & ":S" & r2)
Else
Set Rng = Range("A" & r & ":S" & r)
End If
Select Case Number
Case 0
Rng.Interior.ColorIndex = 6
Number = 15
Case 15
Rng.Interior.ColorIndex = 15
Number = 1
Case Else
Rng.Interior.ColorIndex = 0
Number = 0
End Select
Set Rng = Nothing
End Sub
結合セルがあるとこんなにややこしくなります。
やはり、結合セルを作らない表組が良いですね。。
No.2
- 回答日時:
#1です。
列の結合に付いては、今回の処理では影響されません。
問題は、行です。
#1に示した処理を追って説明します。(この場合、ボタンは対象セルに1つです)
Static Number As Long Numberは変数で数値の入れ子です。
通常、End Sub 処理が終了すると変数は初期化されますが、Staticの為、維持されます。(特殊な場合を除き)
On Error Resume Next はエラー対策
r = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row は、ボタンの位置をTopLeftCell.Rowで取得します。セルの行番号です。
Select Case Number 先ほどの変数の値で処理を分けます。
Case 0 変数が0だった場合
Range("A" & r & ":S" & r).Interior.ColorIndex = 6 A列からS列のセルの色を6 =黄色に設定しています。
Number = 15 次のボタンクリックに備え変数の値を変えています。
・
問題の場所は、r = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row です。
縦方向の結合セルは一番左の一番上がインデックス1番のアドレスになるので
1行目2行目が結合されている場合にボタンが、2行目に設置されていると 変数 r は2になりますが、結合セルのインデックス一番のアドレスは1なので
2行目も結合されているにも関わらず、色が変わりません。
使用になりたい目的などを把握できないのですが、結合セルの上の行にボタンを設置すれば、結合セルも色が変わります。
画像参照
なんかかっこ良くないかと思いますね。 r2を作り、結合セルをMergeCellsなどで確認して r2 などを変える方法も浮かびますが。。
取敢えず。
>もう一度、上の状況ならどうすれば良いか教えてください。
どうすれば良いかを経験上、進言すると、結合セルは使わない方が良いです。少なくとも作業シートでは。
どうしても使う必要があるケースは少ないと思います。(印刷や配布PDFなど閲覧するシートくらいかな?)
表組や項目、シート分けなどがExcelのツボになります。初歩的な事ですが、ここをしっかり学習するとすべてにおいて良い知識になりすので
>また、ボタンの作り方も教えてくださると嬉しいです。
なるほど、、 ご自分で調べる癖も付けるべきと考えます。こちらを参考にしてください。
https://kokodane.com/macro9_2.htm

No.1
- 回答日時:
こんにちは、結合セルがどの様になっているか分からないのですが
参考のコードを書きました。
T列対象セル内にボタンを設置して(ボタンは1つ)複数回押す事で色を変化させます。
ボタンの設置セル行の取得方法や色を付けるところなどのコードが参考に成ればと思います。
Sub Test()
Dim r As Long
Static Number As Long
On Error Resume Next
r = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
Select Case Number
Case 0
Range("A" & r & ":S" & r).Interior.ColorIndex = 6
Number = 15
Case 15
Range("A" & r & ":S" & r).Interior.ColorIndex = 15
Number = 1
Case Else
Range("A" & r & ":S" & r).Interior.ColorIndex = 0
Number = 0
End Select
End Sub
お礼が遅くなってしまい申し訳ありません。詳しく教えて下さり、活用しております。ありませんございました。また何かありましたら宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】ボタンを押すごとに、A1セル、A2セル、A3セルに日付を入力 3 2023/01/25 00:12
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) マクロを教えてください 3 2023/07/31 21:57
- Excel(エクセル) マクロを教えてください 2 2023/07/30 23:05
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Visual Basic(VBA) VBA 画面上のカーソルに文字数字を入力するコードを教えて下さい 1 2022/10/30 10:31
- Visual Basic(VBA) VBA active sheetをPDF化して指定フォルダに保存 1 2022/07/07 11:27
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセル ボタンを押すと色が変わるように
Excel(エクセル)
-
エクセルでコマンドボタンを押すと指定のセルの色を変える
Excel(エクセル)
-
【VBA】クリックする毎にセル色が変わる
Excel(エクセル)
-
-
4
セルをクリックしたら色を変えまたくりっくしたらもと
その他(Microsoft Office)
-
5
エクセルでセルをクリックすると色が変わるコード
Excel(エクセル)
-
6
VBA ダブルクリックするたびにセルの色が順番に変わる
Excel(エクセル)
-
7
マクロ エクセル
Excel(エクセル)
-
8
VBAでセルをクリックする回数で表示が変わる
その他(プログラミング・Web制作)
-
9
複数のマクロボタンをまとめて一つのマクロボタンにするということ。
Excel(エクセル)
-
10
マクロ クリックしたら色変わる
会計ソフト・業務用ソフト
-
11
マクロボタンを押すたびに違う動作をしたい
Excel(エクセル)
-
12
クリックすると文章が表示されるシステム
Excel(エクセル)
-
13
マクロ登録ボタンに色をつける
その他(Microsoft Office)
-
14
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
15
EXCELの塗りつぶしのボタンを複数セット出来るのでしょうか?
Excel(エクセル)
-
16
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
17
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
18
値を入力後、自動的にアクティブセルが移動するマクロ
Excel(エクセル)
-
19
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
20
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelでSUBTOTAL関数を設定した...
-
EXCELで、結合されたセルに連続...
-
セルを結合した場合の関数(COU...
-
エクセルでチェックボックスを...
-
Excelでnullになるような式のセ...
-
Excel 離れたセルへの連続デー...
-
エクセル ボタンを押すとセルの...
-
エクセルでたくさんのセルを小...
-
エクセル 結合セル内に空白なら...
-
Excelの関数を教えてください。
-
エクセルでセルをクリックして“...
-
結合セルのデータ消去でエラー...
-
Excelでセルを結合してデータを...
-
エクセルで作業した日の日付を残す
-
エクセルVBAでのvlookupの使い...
-
vba 結合されたセルの列番号を...
-
エクセルの並び替えがうまくい...
-
エクセルで片方のセルに入力し...
-
Excelの表に自動でナンバリング...
-
お世話になります。エクセルマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelでSUBTOTAL関数を設定した...
-
EXCELで、結合されたセルに連続...
-
エクセル ボタンを押すとセルの...
-
エクセルでチェックボックスを...
-
セルを結合した場合の関数(COU...
-
エクセルで片方のセルに入力し...
-
Excel 離れたセルへの連続デー...
-
VBAで結合したセルがクリアでき...
-
Excelでnullになるような式のセ...
-
セルの値を取得してSQL文に組み...
-
Excel セルを結合したものを抽...
-
エクセルでたくさんのセルを小...
-
エクセルでセルをクリックして“...
-
エクセル 結合セル内に空白なら...
-
【EXCEL】条件に合致するセルの...
-
Excelのカウントアップボタンに...
-
VBAで困っています。
-
エクセルで作業した日の日付を残す
-
EXCEL VLOOKUP的コメント自動表示
-
EXCEL セル結合したセルを参照...
おすすめ情報
ありがとうございます。
セルは、行が2行つづセル統合されていて、
幅は、(A)(B)(C)(D)(E.F)(G.H)(I.J.K.L.M)(N.O.P.Q.R)(S)で分かれています。
ボタンを押すと、
この統合された2行と、AからSのセルを黄色かグレーに変えたい。
ただ、時によって
1.2の行だったり、36.37の行だったりと様々ですので、
1.2のAからSのセルにいろを変えるときは、T1.2を押すと色が変えられればいいかな?と思っています。
このようなことは実際できますか?
参考にとコードを書いてくださったものの、
初心者すぎて理解できていません。
もう一度、上の状況ならどうすれば良いか教えてください。
また、ボタンの作り方も教えてくださると嬉しいです。
すごいです!
ありがとうございます!!!
思ってたのができました。
お陰様でボタンも自分で作れました。
セルが無駄に結合されているのは、
意見を言えない先輩方何故かこう言う謎なセル結合をしていたんです…
結構、行の統合は消していいよー!と言われましたが…
あとすみません。
グレーをRGB217.217.217のこの色より少し薄めの色に変えたいのですが、自分なりにいじってみたら
黄色、黄色、透明になってしまいます。
どこを変更すれば良いですか?
自分でも触ったり調べてみます。