• ベストアンサー

ExcelのVBAに詳しい人に質問です

tsubuyukiの回答

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.3

どの程度「気になる点滅」なのかは存じ上げませんが・・ 条件付き書式を利用しようとする限りは避けて通れない状況です。 条件付き書式を利用しないやり方として、 Private Sub Worksheet_SelectionChange(ByVal Target As Range)     Cells.Interior.Pattern = xlNone     Target.EntireRow.Interior.Color = RGB(204, 255, 255)     Target.EntireColumn.Interior.Color = RGB(204, 255, 255) End Sub こんな感じで強引にやる方法もありますが・・・ 一度すべての塗り潰しを解除してしまうという弊害があります。 どんな手段でもそうですが、やはり一長一短ありますので、 どこを妥協するか?というところにかかわってくるのかなぁ、と思いますよ。

mzakom
質問者

お礼

回答ありがとうございます。 とても参考になりました。 一度習得した色をまた塗るという方法ならいけそうですね。

関連するQ&A

  • VBAをExcel2010/2013で利用

    下記URLのサンプルファイルに含まれるVBAで作成されたユーザー定義関数について、 Excel2003(Windows7)の環境で利用することが出来ました。 http://www.relief.jp/itnote/archives/003799.php しかしながら、Excel2010およびExcel2013(ともにWindows7)で開くと、結果が #VALUE! と変わってしまい、正しく表示されませんでした。 VBAの参照設定でも同じものにチェックを入れている状態ですが、うまくいきません。 (ただし、Microsoft Excel XX.X Object LibraryやMicrosoft Office XX.X Object Library などバージョンの差異はあり) Excel2010またはExcel2013において、このユーザー定義関数を 正しく利用できる方法が分かりましたらご教示いただけますと助かります。

  • VBA?イベントプロシージャ?の削除の仕方

    データ入力のアルバイトをしていて、入力しやすいようにアクティブセルの行を目立たせようと思い、 http://okwave.jp/qa/q2089225.html http://www.relief.jp/itnote/archives/001406.php を参考に設定しました。 お陰さまで入力は終わったのですが、私の作ったデータを別の方がこの後コピーしてチェック するので、この設定を削除しないといけないんですが‥‥。方法が見つかりません。 どなたか、パソコンに疎い人間に分かるよう教えていただけますでしょうか? ちなみにエクセル2003です。 よろしくお願いします。

  • VBA超初心者の参照に関するご質問です

    VBAの超初心者ですが、請求書を作っているところです。 A列はボタンを置くためだけに作った欄外列です。 ある任意行のAセルにボタンを置いています。 ご質問は; そのボタンを押せばアクティブセルが現在どこにあってもそのボタンが置いてある行の直ぐ下に一行挿入される。その挿入行は、例えばNo1行に書式を埋め込んだセル群を置いてあり、その行を参照してコピー・ペーストする という記述はどう書けば良いでしょうか。 アクティブセルを行の特定場所に置けばそこからの相対参照が出来ますが、「アクティブセルがどこにあっても」という記述が良く解りません。

  • エクセルデータをアクセスにコピペする時のこと

    http://www.relief.jp/itnote/archives/000543.php ↑などにエクセルをアクセスのテーブルにコピーする時、『[データの最初の行には、列ヘッダーが含まれていますか?]という確認メッセージが表示されるので』と書いてありますが、私がやると出ません。 特別何か有るのでしょうか。 WIN XP ACCESS 2007 です。よろしくお願いします。

  • VBA ユーザ定義関数の使い方です

    VBA ユーザ定義関数の使い方です Sub test() cells(1,1)=UpperSutegana(cells(1,1)) End sub http://www.relief.jp/itnote/archives/002223.phpのソースをコピー としましたがうまくいきません。なぜでしょうか?

  • VBAでドロップダウンリストを連動させたものを作るには?

    VBAでドロップダウンリストを連動させたものを作ることが出来ますでしょうか? 今まで入力規則の設定をつかって見ていましたがどうやら実現不可能と思われることが分かってきました。 VBAでの連動したリストの代替案を考えていますが・・・ いい方法は無いでしょうか? このページのようなことがやりたいと思っています。 http://www.relief.jp/itnote/archives/000822.php

  • VBAで削除を早くしたいのですが…

    Excel2007のVBAです。キー記録を眺めながら四苦八苦しております。 数千行あるデータで、A列が"d"以外の行を削除したいのですが PCスペックが低いせいか、時間がかかってしまいます。 簡単に効率化することは可能でしょうか? よろしくお願いします。 ※1行目はタイトル列、全体行数は可変です。 Sub A05_A列がd以外は削除する() Application.ScreenUpdating = False Dim sh2 As Worksheet Set sh2 = Worksheets("削list") For i = Cells(Rows.Count, "C").End(xlUp).Row To 2 Step -1 If sh2.Cells(i, "A").Value <> "d" Then Rows(i).Delete End If Next Application.ScreenUpdating = True End Sub

  • エクセル マクロ 行 非表示

    マクロについてご教授お願い出来ないでしょうか。 マクロ初心者です。 エクセル アクティブセル(ex A120セルやA20セル)の行から1行目までを非表示にさせるマクロがわかりません。 アクティブセルから下の行を非表示にさせるマクロは下記URLにて紹介がありましたが・・ https://www.relief.jp/docs/excel-vba-hide-below-active-cell.html また、もし可能でしたら、アクティブセルからA2行目までの非表示、つまり 1行目は残すマクロが可能でしたら、合わせてご教授どうぞよろしくお願い致します。 

  • Excel VBAのカウントについて

    Excel2003で表を作成しています。 画像のような表を作成しているのですが、 左のデータから右の表に数を入力するのに、VBAで出来ないでしょうか? COUNTIFを使おうと思ったのですが、COUNTの条件が3つありますし、 左のABCの列は500行くらいデータが入っているので出来ればVBAで出来たらと思いました。

  • Excelの三つのVBAを一つにまとめる。

     初めまして、よろしくお願いします。当方全くの素人でVBAの基礎もよくわからず、ネットから拾ってきていじった三つのVBAがあります。この三つ、一つ一つは個別に機能するのですが、VBAとして正しいのかさえよく解っていません。この三つを一つにまとめて、同時に機能するようにしたいと頭を抱えています。 Sub TEST() Application.ScreenUpdating = False Application.EnableEvents = False ActiveSheet.Calculate Range("b10:b20").Insert shift:=xlShiftToRight Range("b10:b20").Value = Range("a10:a20").Value Application.OnTime TimeValue("09:00:00"), "TEST" Application.ScreenUpdating = True Application.EnableEvents = True ActiveWorkbook.Save End Sub ________________________________________________________________ Sub TEST1() Application.ScreenUpdating = False Application.EnableEvents = False ActiveSheet.Calculate Dim myCnt As Long Range("c30:c40").Copy Range("d30:d40").PasteSpecial Paste:=xlPasteValues Range("b30:b40").Copy Range("c30:c40").PasteSpecial Paste:=xlPasteValues Range("a30:a40").Copy Range("b30:b40").PasteSpecial Paste:=xlPasteValues nextTime = Now() + TimeValue("01:00:00") Application.OnTime nextTime, "TEST1" Application.ScreenUpdating = True Application.EnableEvents = True ActiveSheet.Calculate ActiveWorkbook.Save End Sub ________________________________________________________________ Sub TEST2() Application.ScreenUpdating = False Application.EnableEvents = False ActiveSheet.Calculate Dim myCnt As Long Range("c50:c60").Copy Range("d50:d60").PasteSpecial Paste:=xlPasteValues Range("b50:b60").Copy Range("c50:c60").PasteSpecial Paste:=xlPasteValues Range("a50:a60").Copy Range("b50:b60").PasteSpecial Paste:=xlPasteValues nextTime = Now() + TimeValue("00:10:00") Application.OnTime nextTime, "TEST2" Application.ScreenUpdating = True Application.EnableEvents = True ActiveSheet.Calculate ActiveWorkbook.Save End Sub ________________________________________________________________  解る方、よろしくお願いします。