• ベストアンサー

行の塗り潰し方法

過去ログをさんざん調べたんですが発見できなかったので、教えてください。 エクセルで受注リストをシート1に入力していて、 シート2に受注件名の受注番号や受注元といったデータを入力しています。 シート1の受注リストにハイパーリンクでクリックするとシート2の受注番号のセルに飛ぶようには設定できたのですが、何分件数が多い為出来れば、受注番号に飛んだ時点でその受注番号の行全てを適当な色に塗り潰したいのですが、そのようなことは可能でしょうか? 条件付設定で出来るかと思ったのですが、特定のセルをクリックしたらその行を塗り潰すといったことが可能でしょうか? 簡単な数式を使う程度の知識しかありませんので、マクロなど難しい方法ではなく、できるだけ簡単な方法を教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.2

次のコードをVBAの画面に貼り付けてください。 Sheet1の受注リストのハイパーリンクをクリックするとSheet2の受注番号のセルに飛び、そのセルの行に色を塗ります。 '***から Option Explicit Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)   Dim j As Long   j = Selection.Row   If ActiveSheet.Name <> "Sheet2" Then Exit Sub   Sheets("Sheet2").Cells.Select   Selection.Interior.ColorIndex = xlNone   Sheets("Sheet2").Rows(j).Select   Selection.Interior.ColorIndex = 6   Sheets("Sheet2").Range("A" & j).Select End Sub '***まで コードの記述方法 シート名タブ(Sheet1)を右クリックし、「コードの表示」を選択します。 Option Explicit がでるので、その下に'***から'***までをコピーし貼り付けします。 マクロの実行・・何もしなくてもハイパーリンクを実行すれば、マクロは実行されます。

tarosa_00
質問者

お礼

ありがとうございます!!! 理想通りの物です。 いままで、わざわざ自分で色をつけて行の確認をしていたので、ほんとにむちゃくちゃ便利です。 本当にありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

>数式を使う程度の知識しかありませんので 人間がシートや(こういうものをオブジェクトといいます)ボタンをクリックしたとき(イベントと言う)に色を付けたりのエクセル上のアクションをさせるのは、マクロ(と言うよりVBA)の領分です。 形の上では、データの値を変えると色がついたりする「条件つき書式」もこれに似ていますが、ハイパーリンクは値ではないので、条件付の書式では扱えないでしょう。 >特定のセルをクリックしたらその行を塗り潰すといったことが VBAなら、例えばB2セルをクリックすると第3行目を黄色で色をつける場合 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$B$2" Then Rows(3).Interior.ColorIndex = 6 End If End Sub こんな風なものになると思います。 >ハイパーリンクでクリックするとシート・・・ Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) End Sub はありますが、表示した先のセル番地を掴むのは、マクロの初心者向けの問題ではなく、更に難しい(他の道具立てAPIとかを使わないといけないなど)か不可能でしょう。 結局エクセルが予想をしてない(難しい)問題を、VBAはいやだから他の方法でといっても無理と思いますよ。

tarosa_00
質問者

お礼

ご回答ありがとうございます。 やはり難しいですか・・・ これを機にすこし勉強してみます。 丁寧にありがとうございました。

関連するQ&A

専門家に質問してみよう