• ベストアンサー

特定の値のセルに罫線を引くマクロ

imogasiの回答

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

こんなのはマクロの記録でほぼできるではないですか。 丸投げする前にマクロの記録をとって勉強すること。 Sub Macro3() For Each cl In Range("A1:c10") If cl > 10 Then cl.Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThick .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThick .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThick .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlThick .ColorIndex = xlAutomatic End With Selection.Borders(xlInsideVertical).LineStyle = xlNone Selection.Borders(xlInsideHorizontal).LineStyle = xlNone End If Next End Sub ーー (ForEach) For Each cl In Range("A1:c10") 対の最後のNext (条件判定部) If cl > 10 Then 対の最後のEndIF (対象セル範囲) Range("A1:c10") 以外はマクロの記録です。 条件部分はIFステートメントで思い通りつくること。 上記は20以上の例。

mammy18
質問者

お礼

どうもありがとうございました 1行ずつ勉強させていただきます。

関連するQ&A

  • 選択したセルに罫線を引くマクロ

    お世話になっております。 業務上必要になり(効率化が図れるので)選択したセルにバツの罫線を引くマクロを作成しています。 まだまだ自分のレベルが低いので、マクロ記録を参考に、下記のようなマクロを作りました。 Sub バツ罫線マクロ()  ActiveCell.Select   With Selection.Borders(xlDiagonalDown)     .LineStyle = xlContinuous     .Weight = xlHairline     .ColorIndex = xlAutomatic   End With   With Selection.Borders(xlDiagonalUp)     .LineStyle = xlContinuous     .Weight = xlHairline     .ColorIndex = xlAutomatic   End With End Sub 試してみると、選択したセルに対してバツの罫線が引かれました。 やった!と思ったのもつかの間、Ctrlキーでセルを複数選択してマクロを実行すると最後にアクティブにしたセルしか罫線が引かれないではありませんか・・・。 ネットなどで調べてみると、Ctrlキーで複数選択してもアクティブセルというのはそのうちの一つだけというような記述がありました・・・。 そして、ここで行き詰ってしまいました。 お伺いしたいのは2つあります。 ・どうすればCtrlキーで選択した全てのセルにこの罫線を引くマクロを適用させる事が出来ますか? ・変数などを用いたもっとレベルの高いコードの書き方だと、どのように記述されますか?後学のためにレベルの高い人の記述方法と比較させてもらって勉強させてもらいたいと思っています。 よろしくお願いします。

  • 特定セルと罫線を印刷したくないのですが

    A61からBN62まで,罫線が引かれた表があります。印刷の際,その表内の特定のセル(印刷したくないセル)と罫線を印刷しないようなマクロを組みたいのですが,どなたか教えていただけないでしょうか?

  • ExcelのVBAでシート内にある、特定の罫線だけを削除したい。

    ExcelのVBAでシート内にある、特定の罫線だけを削除したい。 2003を使用しています。ここのサイトで罫線に関する質問をし解決に至りましたが、もうひとつお願いしたいことがあるので、よろしくお願いします。 ある範囲(例としてA1セルからM50セルの範囲)内に色々な罫線や図形が表示されているのですが、 その中から特定(例として太さ5ポイントの普通の赤罫線)だけを削除するコードの記述が、色々試してみたのですが出来ませんでした。 どんな記述や展開をして書くのかもイメージがわきません。 よろしくお願いいたします。

  • Excelで、「特定のセルの値が変わったらマクロを実行する」という設定はできないでしょうか。

    タイトルの通りです。 Excelで、「特定のセルの値が変わったらマクロを実行する」という設定はできないでしょうか。 ご存知の方がいらっしゃいましたら教えて下さい。

  • 【VBA】特定の範囲で同じ値を含むセルの色を変える

    Excelのマクロに関して質問です。 特定の範囲(複数行と複数列)内で重複した値(セル内の最初の4文字が同じもの)を含むセルの色を変えたいです。 さらに、重複した値ごとに色分けをしたいです。例えば重複した値[1111]と重複した値[1112]の時では、前者が赤色で後者は青色、更に他の重複する値はまた別の色でというように、 要は、どのセルとセルが重複しているか色分けをして一目瞭然にしたいです。 ※なお特定の範囲は以下の変数を利用します。 dataRow = Workbooks(booksName).Worksheets(sheetsName).Range("A2").End(xlDown).Row 'データの入っている最終行を取得 dataColum = Workbooks(booksName).Worksheets(sheetsName).Range("A1").End(xlToRight).Column 'データの入っている最終列を取得 どなたか知恵をお貸し下さい。よろしくお願いします。

  • 【VBA】特定の範囲で同じ値を含むセルの色を変える

    Excelのマクロに関して質問です。 特定の範囲(複数行と複数列)内で重複した値(セル内の最初の4文字が同じもの)を含むセルの色を変えたいです。 さらに、重複した値ごとに色分けをしたいです。例えば重複した値[1111]と重複した値[1112]の時では、前者が赤色で後者は青色、更に他の重複する値はまた別の色でというように、 要は、どのセルとセルが重複しているか色分けをして一目瞭然にしたいです。 ※なお特定の範囲は以下の変数を利用します。 dataRow = Workbooks(booksName).Worksheets(sheetsName).Range("A2").End(xlDown).Row 'データの入っている最終行を取得 dataColum = Workbooks(booksName).Worksheets(sheetsName).Range("A1").End(xlToRight).Column 'データの入っている最終列を取得 どなたか知恵をお貸し下さい。よろしくお願いします。.

  • 【VBA】特定の範囲で同じ値を含むセルの色を変える

    Excelのマクロに関して質問です。 特定の範囲(複数行と複数列)内で重複した値(セル内の最初の4文字が同じもの)を含むセルに色をたいです。 さらに、重複した値ごとに色分けをしたいです。例えば重複した値[1111]と重複した値[1112]の時では、前者が赤色で後者は青色、更に他の重複する値はまた他の色でというように、 要どのセルとセルが重複しているか色分けをして一目瞭然にしたいです。 ※なお特定の範囲は以下の変数を利用します。 dataRow = Workbooks(booksName).Worksheets(sheetsName).Range("A2").End(xlDown).Row 'データの入っている最終行を取得 dataColum = Workbooks(booksName).Worksheets(sheetsName).Range("A1").End(xlToRight).Column 'データの入っている最終列を取得 どなたか知恵をお貸し下さい。よろしくお願いします。

  • 罫線が引かれているセルの個数を調べるには

    OFFICE2003エクセルで指定した範囲内に特定の罫線(斜線)が引かれているセルの個数を調べる方法は無いでしょうか?宜しくお願い致します。

  • Excelのマクロで特定のセルに罫線を引きたい

    Excelのマクロで特定のセルに罫線を引きたいのですが、 自分で実行したマクロを確認すると長過ぎてとても見づらいです。 それで調べて下記のようにまとめてみたのですが、 2つのシートをグループ選択する段階で止まってしまいます。 Dim 最終行 As Integer 最終行 = (Range("F65536").End(xlUp).Row) Sheets(Array("Sheet1", "Sheet2")).Select Sheets("Sheet1").Activate ActiveWindow.LargeScroll Down:=1 Range("F1:F" & 最終行).BorderAround LineStyle:=xlNone, _ Weight:=xlThin, _ ColorIndex:=xlAutomatic   With Selection.Borders(xlInsideVertical) End With どちらのシートも同じ列の最終行まで範囲選択することに変わりありません。 シンプルで簡単な書き方はないでしょうか? どうかよろしくお願い致します。

  • EXCEL2000 VBA レコードの入っているセルにのみ罫線

    EXCEL2000です。 CSVファイルを取り込んでエクセルシートに貼り付け(値だけを貼り付け)、罫線を受けて書式を整えるマクロを記録したいと思っています。 が、読み込むファイルのレコード数が毎日違う(10から100件程度)ので、取り込んだエクセルシートのセルに罫線がうまくつけられません。先に200程度セルに罫線をつけておく事も考えたのですが、そうすると印刷時にレコードのない部分まで印刷されてしまいます。一枚の紙に15件ほどしか入らないので、10の時に200だと何もレコードの入っていない紙が13枚ほど出てきてしまうのです。 レコードは横もちなのですが、ところどころ虫食いもあります。ただ、必ずB列だけはレコードがあります。 いくつかロジックを考えてみました。 1)Bのセルがnullでなければ、その横A1-D1までに罫線を引く。Bのセルがnullになったら罫線は引かない。それぞれセルごとに罫線が要ります。 2)Bのセルがnullでないセルまでを選ぶ方法。印刷のオプションに選択した範囲を印刷、というのがあるので、レコードが入っている範囲を選択する方法があればそれでもできるかなと。 どなたか教えていただければ幸いです。また、他に案があればよろしくお願いします。