セルのかたちが正方形に近い、約100行(日付)と100列(項目)の表があります。
ひとつのセルの中には2桁(0~99)までの数字を入力し、縦横それぞれの最後尾でSUM関数により
合計値を出しています。
すべてのセルに数字を入力するわけではないので、よく間違ってとなりの項目に
数字を入力してしまうことがあります。
入力ミスを防ぐ為に、入力する際にアクティブなセルの行と列同時に反転表示する方法はありますでしょうか。(十文字のイメージ)
動作はブック全体ではなく任意のシート(Sheet1)のみで行いたいです。
エクセル2003です。
よろしくお願いします。
A 回答 (11件中1~10件)
- 最新から表示
- 回答順に表示
No.11
- 回答日時:
アイデアだけ書いてみる。
Sheet1にセルの列幅にあわせて、縦に細長い、オートシェイプの四角を貼り付ける。
オートシェイプの書式設定の「色と線」で、
・「塗りつぶし」の「「色}で淡い色を着ける(ライトブルー、ライトグリーン、ピンク)
・「塗りつぶし」の透明度を調節し30%ぐらいで設定
ーー
Sheet1のCelection_Changeイベントで
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Worksheets("sheet1").Shapes(1).Left = Cells(1, Target.Column).Left
End Sub
を作る。
別の列のセル選択をすると、シェイプの四角がそちらの列に移動する。
ーーー
良いところ
そんなに動作が重くない
セルの字が見える
セルに既に設定された色書式を壊さない
Sheet1だけの限定効果。
VBAコードが割合簡単。
ーー
悪いところ
セルの文字がややぼやける
===
以上は列についてやったが、行のほうも上記を少し変えれば出来る(同時実現可能ー>十字状)。
縦の長さはデータ行によりあわせて長くしてください。
列幅が、列ごとに違う場合も、列幅にあわせてシェイプの幅を変えれば対応できそう。コードは略。
===
関数ではアクチブセルをとらえるのが難しく、全体にこの件を関数(条件付書式)では難しいだろう。
No.9
- 回答日時:
またまたお邪魔します。
なかなかご希望通りの動きにならないみたいですが・・・
今、当方使用のExcel2003で新規ファイルに前回のコードをコピー&ペーストして操作してみるとちゃんと動きました。
一旦保存した後にファイルを開いてやってみましたが問題なく動きました。
ファイルを開いた段階ではセルの色を消すようにしていますが、別セルを選択するとちゃんとセルに色がつくようにしています。
ん~~~~~~~~~~
原因が判らないのですが、考えられることとしては、
Excelのバージョンは何をお使いでしょうか?
2007以降の場合は手元にないので詳しく判らないのですが、もし2007以降の場合は
保存方法(ファイル形式)の右側の下向き▼をクリックし、「マクロ有効ファイル」等のような項目があったと思いますので、そのファイル形式で保存します。
そしてそのファイルを開いた場合は「マクロを有効にするか?どうか?」という画面が出ますので、当然マクロを有効にしてファイルを開きます。
今一度 ThisWORKbook と操作しているSheet見出し上で右クリックしコードをコピー&ペーストしてみてください。
尚、もう一工夫して↓の画像のように項目列・項目行の色が同じ場合は項目列・項目行も一緒に変えるようにしてみました。
(行項目・列項目とも同じ色の場合のみ有効です。A1セルの色を基準にしていますので、A1セルも塗りつぶしておきます)
ThisWORKbook に貼り付けるコードは
Private Sub Workbook_Open()
Dim ws1 As Worksheet
Set ws1 = Worksheets("sheet1") '←Sheet名は適宜変更してください。
ws1.Range(Cells(2, 2), Cells(100, 100)).Interior.ColorIndex = xlNone
ws1.Range(Cells(1, 2), Cells(1, 100)).Interior.Color = ws1.Cells(1, 1).Interior.Color
ws1.Range(Cells(2, 1), Cells(100, 1)).Interior.Color = ws1.Cells(1, 1).Interior.Color
End Sub
次に操作Sheetのコードは
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i, j As Long
i = Target.Row
j = Target.Column
If i > 1 And i <= 100 Then
If j > 1 And j <= 100 Then
Range(Cells(1, 2), Cells(1, 100)).Interior.Color = Cells(1, 1).Interior.Color
Range(Cells(2, 1), Cells(100, 1)).Interior.Color = Cells(1, 1).Interior.Color
Range(Cells(2, 2), Cells(100, 100)).Interior.ColorIndex = xlNone
Range(Cells(1, j), Cells(i, j)).Interior.ColorIndex = 6
Range(Cells(i, 1), Cells(i, j)).Interior.ColorIndex = 6
End If
End If
End Sub
今度は上手くいくことを望んでいます。m(__)m
No.8
- 回答日時:
No.5・7です。
確かにファイルを開くと閉じた状態で開きますね!
ファイルを開いた時にはセルに色がついていない状態の方法です。
操作しているsheet見出し上で右クリック → コードの表示
これで画面左側に「This WorkBook」とありますので、そこをダブルクリック → 新しいVBE画面が出ますので↓のコードをコピー&ペーストしてみてください。
(操作しているsheetは「sheet1」としていますので、sheet名は適宜変更してください。)
Private Sub Workbook_Open()
Worksheets("sheet1").Range(Cells(2, 2), Cells(100, 100)).Interior.ColorIndex = xlNone
End Sub
尚、余計なお世話かもしれませんが、前回のコードでは十の字の色つきになりますが、
逆L字型の方法もあります。
参考程度でもう一度コードを載せておきます。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i, j As Long
i = Target.Row
j = Target.Column
If i > 1 And j > 1 Then
If i <= 100 And j <= 100 Then
Range(Cells(2, 2), Cells(100, 100)).Interior.ColorIndex = xlNone
Range(Cells(i, 2), Cells(i, j)).Interior.ColorIndex = 6 '←色は好みで変更
Range(Cells(2, j), Cells(i, j)).Interior.ColorIndex = 6 '←色は好みで・・・
End If
End If
End Sub
こんな感じではどうでしょうか?m(__)m
tom04さん ありがとうございます。
L字型更に見やすくなりました!
ただ、保存後の動作についてですが、ファイルを再度開くとL時型の表示がでません。
私のやりかたが間違っているのでしょうか。
確認するために新規ブックを作成し
「This WorkBook」に上記VBAのコードを貼り付け、
「Sheet1」に下記L字型のVBAを貼り付けてみました。
貼り付けた時は問題なく動作しますが、保存後再度動作するようになりますでしょうか。
見ようみまねで、
Private Sub Workbook_BeforeCloseも試してみましたがうまくいきませんでした。
No.7
- 回答日時:
No.5です。
>項目欄には背景色を手動でつけているので消えてしまいます・・・
とありましたので再びお邪魔しました。
方法はいくつかあると思います。
一番簡単なのは項目セルは条件付書式を利用して、条件が空白でない場合は塗りつぶす!という方法です。
他の方法としては色付けしたいセル範囲が決まっているのであれば前回のコードを少し変更すれば可能です。
仮に、B2セル~CV100セル(100列目・100行目)までの範囲でご希望の操作を行う場合のコードです。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i, j As Long
i = Target.Row
j = Target.Column
If i > 1 And j > 1 Then
If i <= 100 And j <= 100 Then
Range(Cells(2, 2), Cells(100, 100)).Interior.ColorIndex = xlNone
Range(Cells(i, 2), Cells(i, 100)).Interior.ColorIndex = 6 '←色は好みで変更
Range(Cells(2, j), Cells(100, j)).Interior.ColorIndex = 6 '←色は好みで・・・
End If
End If
End Sub
行・列範囲の数値はお使いのsheet範囲で変更してみてください。
参考になればよいのですが・・・m(__)m
tom04さん
回答ありがとうございます。
範囲指定はとても使いやすくなりました。
ただ、保存して再度ファイルを開くと、色が付いた状態で十文字になってしまいます。
希望としては背景色を付けずに入力データを保存し、再度十文字になる状態にしたいのです。
もし方法ありましたらよろしくお願いします。
No.6
- 回答日時:
項目を間違えて入力してしまうということができるだけ起きないようにするために用意されているエクセルの機能として「ウィンド枠の固定」があります。
例えば項目名が入力されている1行目とA列のデータを常に画面に表示させておくためにはB2セルを選択したのちに「ウィンドウ」メニューから「ウィンド枠の固定」を選択します。エクセル2010のバージョンでは「表示」タブから「ウィンド枠の固定」を選択します。
反転表示というよりも項目名がエクセルの画面に常に表示されている状態がより重要ではないでしょうか。
回答ありがとうございます。
おっしゃるとおり、項目名がエクセルの画面に常に表示されている状態がより重要ですので
ウィンドウ枠の固定を使っております。
視覚的な要素を使って入力補助的な使い方が出来ればと思っていました。
ありがとうございました。
No.5
- 回答日時:
こんにちは!
一例です。
画面左下にある操作したいsheet見出し上で右クリック → コードの表示 → VBE画面が出ますので
↓のコードをコピー&ペーストしてみてください。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.Interior.ColorIndex = xlNone
Dim i, j As Long
i = Target.Row
j = Target.Column
Rows(i).Interior.ColorIndex = 6
Columns(j).Interior.ColorIndex = 6
End Sub
これでアクティブセルの行・列が「黄色」になると思います。
色については「カラーインデックス」のナンバーで好みの色に変更してみてください。
仮に 6 → 36 に変更すると薄い黄色になります。
尚、手動でセルに色を付けている場合はその色も消えてしまいます。
(条件付き書式での色付けは無視されます)
参考になればよいのですが・・・m(__)m
回答ありがとうございます。
おっしゃるとおり、項目欄には背景色を手動でつけているので消えてしまいます。
既存の背景色に影響せず、データを保存した際にはアクティブセルの十文字の色が保存されず、
後日再入力の際にまた十文字で入力が出来ると嬉しいです。
ありがとうございました。
No.4
- 回答日時:
ano.2、ano.3のken281です。
自分で確かめるとこの方法はこの方法はイマイチのようです。
セルをクリックしても色付け部分が移動しない場合と移動する場合がある。([F9」を押下して再計算させると移動するが)
なので、過去の質問を検索しましたら、同様な質問がありました。(なんと私が同じ回答をしている!!)
他の回答者さんはマクロで回答されてます。
http://oshiete.goo.ne.jp/qa/1560078.html
参考URL:http://oshiete.goo.ne.jp/qa/1560078.html
数回に渡り回答ありがとうございます。
参考URLを参照してVBAを入れてみたのですが、保存すると最後に色が付いた状態で保存されて
しまいます。
後日、続きを入力する際は、一度背景色を消してからの作業になりますね。。。
項目セルには色をつけてあるので、既存の背景色を保持したまま、作業を再開したいのですが、難しそうですね。
ありがとうございました。
No.3
- 回答日時:
ano.2の補足です。
書式で色を指定する時に、パターンで色を指定します。
セルを選択しただけでは色付け部分が移動しませんので確認する場合は選択するセルをダブルクリックするなどして入力可能な状態(セルの中でカーソル点滅)にして下さい。
No.2
- 回答日時:
条件付書式でアクティブセルを交点に十字に色付けが可能です。
(指定した範囲で、条件付書式に縦用、横用に2つの条件を指定しますので後1つの条件付書式しか使えなくなってしまいます。(2007/2010では制限は無しだったと思います))色を付けたい部分の範囲を選択しておいて、
条件付書式の設定画面(メニューバー→書式→条件付き書式)で「セルの値が」の横をクリックして「数式が」を選び
=ROW(A1)=CELL("row")
「書式」で色を設定
追加をクリック
同様に「数式が」を選び
=COLUMN(A1)=CELL("col")
「書式」で色を設定
OKをクリック
A1は範囲指定した部分の左上端のセルです。適宜に変更してください。(シート全体ならシート全体を範囲指定して下さい。)
EXCELL 2007は下記URLを参考に
http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/e …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件付書式で「=#N/A」に色を付...
-
E列のセルに数値が入れば(空白...
-
条件付き書式で、結果が1行ずれる
-
Excel にて条件付き書式の色に...
-
エクセルの枠の中の文字が青文...
-
Excelの条件付き書式にて空白セ...
-
エクセルで特定の数字等を表示...
-
条件付き書式で太罫線を引く方法
-
セル結合させてるときの 条件...
-
互換性チェック
-
エクセルで1以上は全て1にするには
-
ピボットテーブルオプション「...
-
エクセル内で複数の文字(50個ぐ...
-
エクセル 条件付き書式で色をつ...
-
Excelで計算結果の文字色を一部...
-
エクセルからワードへの差し込...
-
【エクセル】今日の日付に赤枠...
-
エクエルで隣のセルの文字が赤...
-
エクセルで日付を入力したらカ...
-
エクセルで一定期間が経過した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
E列のセルに数値が入れば(空白...
-
Excel にて条件付き書式の色に...
-
条件付き書式で、結果が1行ずれる
-
条件付書式で「=#N/A」に色を付...
-
互換性チェック
-
エクセルの枠の中の文字が青文...
-
エクセルで特定の数字等を表示...
-
Excelの条件付き書式にて空白セ...
-
エクセルで1以上は全て1にするには
-
ピボットテーブルオプション「...
-
条件付き書式で太罫線を引く方法
-
セル結合させてるときの 条件...
-
エクセル 条件付き書式で色をつ...
-
Excelについて あるセルに文字...
-
エクセル内で複数の文字(50個ぐ...
-
エクエルで隣のセルの文字が赤...
-
エクセルで文字訂正の横線だけ...
-
【エクセル】シフトで○が6個以...
-
エクセル:文字色を認識して○×...
-
セルの値が空白じゃないなら色...
おすすめ情報