advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 33 for 選択 セル 目立たせる (0.023 sec.)
選択 (24677), セル (67530), 目立たせる (54)
[[20180918091628]]
#score: 11245
@digest: e7205e00438fa3e499173cfd01ffd440
@id: 77304
@mdate: 2018-09-19T11:51:33Z
@size: 9701
@type: text/plain
#keywords: highlight (54200), acadd (29993), ゴニ (23453), ニョ (10871), 十字 (6087), sheetselectionchange (5982), デメ (5834), 名無 (5195), 目立 (5072), interior (4642), colorindex (4137), selectionchange (3564), enableevents (3143), メリ (3078), 択状 (2727), target (2603), 2018 (2491), (名 (2046), 火) (1869), entirecolumn (1826), ブセ (1587), イベ (1546), 無し (1423), 色が (1422), workbook (1299), application (1285), クテ (1283), ベン (1266), activecell (1219), 付い (1210), ィブ (1177), entirerow (1169)
『アクティブセル目立たせるマクロで質問です。』(名無し)
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Dim highlight As Integer highlight = 35 '黄色にする Cells.Interior.ColorIndex = 0 Rows(Target.Row).Interior.ColorIndex = highlight Columns(Target.Column).Interior.ColorIndex = highlight End Sub セルの行、列に色を付けるマクロをネットから探してきたのですが、 このマクロで元からセルに付いている色を消したくない場合はどうしたら良いでしょうか。 印刷時もこの行、列に色がついたままでしょうか? < 使用 Excel:Excel2016、使用 OS:Windows10 > ---- その方法では塗りつぶしを行っているため元の塗りつぶしは消えてしまいます。 事前に直前の情報を退避しておけば対応できるかもしれませんが・・・ 名前定義+条件付き書式を使う方法もあります。 https://hamachan.info/win7/Excel/active.html メリット ・「元に戻す」機能が使えなくならない。 ・(たぶん)こっちのが軽い ・塗りつぶし色情報を消さずに表示を上書きできる。 デメリット ・切り取り・貼り付けで条件付き書式が壊れる。 ・あちこちの機能を使うので設定が面倒 ・複数行のとき一行目しか着色出来ない。 あとRelaxTool(フリーのアドイン)の中にオートシェイプを使って目立たせる機能が付いてたような・・・。 どの方法も色が付いたままだと思うので、Workbook_BeforePrintイベントでゴニョゴニョする必要がありそう。 (名無し) 2018/09/18(火) 09:42 ---- Cells.Interior.ColorIndex = 0 これを消して、 Rows(Target.Row).Interior.ColorIndex = highlight Columns(Target.Column).Interior.ColorIndex = highlight これを「もともと色が付いて無かったら」というIF文の中に入れればOKです。 (TAKA) 2018/09/18(火) 09:45 ---- TAKAさん 成る程、選択中の行列でも前の色を残したまま表示したいという解釈も出来ますね・・ > Cells.Interior.ColorIndex = 0 これを消して、 それだと直前に選択していた行列の塗りつぶしが解除されなくなりません? > これを「もともと色が付いて無かったら」というIF文の中に入れればOKです。 それだと1セルづつ判定が必要になりますよね? 表が小さければ良いのですが、大きな表になると重くなりそうなのでちょっと心配です。 (私も検証してないので違ったら申し訳ございません。) (名無し) 2018/09/18(火) 09:57 ---- あああ、、そういうことですか、、、 エクセルって最初から選んだところ色変わりません?? (TAKA) 2018/09/18(火) 10:01 ---- 名無しさん 条件付き書式の方は以前使っていたのですが、毎回使うシートに条件付き書式の入力が必要なのが使いずらかったのでこちらを検索しました。 まさしくデメリットで書いて頂いた通りです。 Workbook_BeforePrintイベントでゴニョゴニョ・・ やはりマクロ理解していないと設定は難しそうですよね。。 TAKAさん 試してみたいのですが、 Rows(Target.Row).Interior.ColorIndex = highlight Columns(Target.Column).Interior.ColorIndex = highlight これを「もともと色が付いて無かったら」というIF文の中に入れればOKです。 はマクロの中のどこに入れたら良いでしょうか? (名無し) 2018/09/18(火) 10:44 ---- 別案です。 あらかじめシートのコピーをとっておき(使うのは色だけなので、内容は古くてもOK)、こっちから色だけコピーすることで色を戻してはいかがでしょうか。 Dim R As Long Dim C As Long Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Const COPYSHEET = "Sheet1 (2)" Const highlight = 35 Application.ScreenUpdating = False If 0 < R Then Application.EnableEvents = False Sheets(COPYSHEET).Rows(R).Copy Rows(R).PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Sheets(COPYSHEET).Columns(C).Copy Columns(C).PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Target.Select Application.EnableEvents = True End If R = Target.Row C = Target.Column Rows(R).Interior.ColorIndex = highlight Columns(C).Interior.ColorIndex = highlight Application.ScreenUpdating = True End Sub (???) 2018/09/18(火) 10:54 ---- >はマクロの中のどこに入れたら良いでしょうか? いや、、忘れてください、、 行の中で色が付いてるセルと色が付いてないセルを判定するので そんな単純じゃなかったです。 (TAKA) 2018/09/18(火) 10:59 ---- 書き忘れ。 ThisWorkbookのWorkbook_SheetSelectionChangeにコードを書くと、全シートで色替えしてしまうので、シートのバックアップ案ではコピー先もクリックで色が壊れてしまいます。 なので、THisWorkbookではなく、シートモジュール(例えばSheet1)の Worksheet_SelectionChangeに書くことで、シートを1つにできます。 (???) 2018/09/18(火) 11:01 ---- ???さん 別案のシートコピーで試してみます! わかりました、ワークシートモジュールに書いてみます。 ありがとうございます! TAKAさん そうなんですね、わかりました。 ご思考いただきありがとうございました! (名無し) 2018/09/18(火) 11:44 ---- 列、行単位で選択できなくなるけど。 更に、Shift、Ctrlキーを併用したセル選択ができなくなる。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Acadd = ActiveCell.Address Application.EnableEvents = False Union(Target.EntireRow, Target.EntireColumn).Select Range(Acadd).Activate Application.EnableEvents = True End Sub >・複数行のとき一行目しか着色出来ない。 アクティブセルは、1つしかないけど?? (BJ) 2018/09/18(火) 11:59 ---- BJさん 仰る通りです。選択セルと勘違いしていました。 あと質問者と同じ名前を使っていたようでみなさんを混乱させて申し訳ございません。私は一旦撤退します。 (名無し) 2018/09/18(火) 12:06 ---- ???さん シートコピーでうまくいきました! 後で書いてくれた BJ さんの方法がシート増やさず楽なので使わせていただくことにしましたが、そういう方法もある事を今後覚えておきます、ありがとうございました。 BJさん 印刷にも支障なく目立つようになりました、ありがとうございます! できれば解説を簡単にでも良いのでお願いできないでしょうか。 Private Sub Worksheet_SelectionChange(ByVal Target As Range)'セル選択範囲を変更したときに実行する処理 Acadd = ActiveCell.Address'アクティブなセルの位置を取得 Application.EnableEvents = False'イベントを??? Union(Target.EntireRow, Target.EntireColumn).Select Range(Acadd).Activate'セルをアクティブにする Application.EnableEvents = True'イベントを??? 部分ずつネットで調べただけなので意味もわかっておらずすみません。 名無しさん ニックネームが被ってしまっていたのですね、すみません! 思考ありがとうございました。 (名無し) 2018/09/18(火) 13:46 ---- なるほど、BJさん案は自分で塗らず、デフォルトの選択状態の色変わりを利用しているわけですね。 セルを汚さないし、秀悦だと思います。 ロジックは、縦1列+横1行をまとめて選択状態にしているだけです。 Application.EnableEvents は、その選択によって更にSelectionChangeイベントが発生してしまう事を抑止しています。 (???) 2018/09/18(火) 13:57 ---- 1行1列ではないですね。選択した行数列数に追従するので、より汎用的です。すばらしい! (???) 2018/09/18(火) 14:02 ---- 黙ると言ったけどBJさんの案がとても素晴らしいのですが、 ユーザーが自由に切り替えができないのは不便だなと思い、 Ctrlキーでスイッチできるようにしてみた。 【シートモジュール】 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If GetKeyState(VK_CONTROL) = 1 Then '←追加 Dim acadd As String acadd = ActiveCell.Address Application.EnableEvents = False Union(Target.EntireRow, Target.EntireColumn).Select Range(acadd).Activate Application.EnableEvents = True End If '←追加 End Sub 【Module1】 Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer Public Const VK_CONTROL = &H11 これでデメリット解消ではないでしょうか! (名無し@回答者) 2018/09/18(火) 14:21 ---- わたしだけ質問がよくわかってないのかもですけど、書きぶりから、今は"条件付き書式"を使っていないようなので、アクティブセル選択セルではないんですよね?)に色を塗る程度であれば、 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Cells.FormatConditions.Delete With ActiveCell .FormatConditions.Add Type:=xlExpression, Formula1:="=TRUE" '実行環境で「ColorIndex」の35が黄色なのか要確認 .FormatConditions(1).Interior.ColorIndex = 35 End With End Sub みたいな感じでいけちゃいませんか? (もこな2) 2018/09/19(水) 12:58 ---- 例えばF10セル選択した場合、F列のセルおよび10行のセル(十字になる)に色を付けたい(もともと色がついている場合は そのことがわかるように)だと思うが。 (ねむねむ) 2018/09/19(水) 13:18 ---- 普通はフォーカスしているセルに色が付きますが、これを目立たせるために、行、列に色を付けて、十字型にしたい、というのが主目的だろうと思います。 クリックしたセルを中心に十字。 プレゼンなんかで利用するのでしょう。 なので、塗るのは1行全部と1列全部であり、塗らずにこれを実現してしまうBJさん案が最速だし、内部書式のカウントも進まないので綺麗、という感じですね。 もこな2さん案を十字に適用したとして、実際に塗ってしまう私の案よりはマシだけど、全く塗らない案には敵わない、という感じでしょうか。 他に条件付き書式を使っていると駄目、という欠点もありますし。 そして、BJさん案の欠点である、セルの編集ができなくなってしまう点は、デザインモードにしてマクロを動かなくした状態にするだけで良いのではないかなぁ、と思います。 (???) 2018/09/19(水) 13:31 ---- あぁなるほど。お二方のフォローで理解しました。 要は、今のエクセルでも行と列の見出し?の部分が色が変わってくれるけど、もっとみやすく、昔のlotus 1-2-3みたいな感じで表示してほしいってことでしたか。 そうなると、行列まるごと選択状態にする案って妙手ですね。 今度、同僚に、私が考えたって教えよう(違っ 蛇足ですが、スイッチ追加案は、操作(プレゼン?)してるうちにどっちのモードか忘れそうなので、シート見出しの色を変えるとか、トグルボタンを設置するとか視覚的にわかるようにしたほうがいいかもなんて思いました。 (もこな2) 2018/09/19(水) 20:51 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/201809/20180918091628.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97028 documents and 607994 words.

訪問者:カウンタValid HTML 4.01 Transitional