痔になりやすい生活習慣とは?

エクセルのデータで条件を満たす行に太線を自動的に線を引くようにしたいのですが、何か良い方法はないでしょうか?
例)データの中でN100,N110,N200の数字の入った行がそれぞれ何行かあってN100ならば、N100の最後の行に太線を引いていく方法なのですが。

もし、分かる方がいらっしゃったら教えてください。
よろしくお願いいいたします!!

このQ&Aに関連する最新のQ&A

A 回答 (5件)

VBAでこんな感じでしょうか?


行と言われてもどこまでかわからないので、A列からE列までとしています。
値の判断はA列で行っています。
Sub test()
Dim i As Long
Cells.Borders(xlEdgeBottom).LineStyle = xlNone
For i = Range("A65536").End(xlUp).Row To 1 Step -1
If Cells(i, 1).Value = "N100" Then
With Range(Cells(i, 1), Cells(i, 5)).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
End With
Exit Sub
Else
With Range(Cells(i, 1), Cells(i, 5)).Borders(xlEdgeBottom)
.LineStyle = xlNone
End With
End If
Next i
End Sub

この回答への補足

早速の返答、ありがとうございました。
このプログラムは、エクセルのマクロから「Visual Basic Editeor」に入力するということでしょうか?

補足日時:2006/02/21 21:56
    • good
    • 0

幾つの条件があるのかわかりませんが、


If Cells(i, 1).Value = "N100" _
Or Cells(i, 1).Value = "N110" _
Or Cells(i, 1).Value = "N110" Then
単純に「OR」で繋げばよいかと。

この回答への補足

返答、ありがとうございました!!
 条件は、たくさんあるのですが規則性があまりないので単純に「OR」で繋ぐしかないですか?

 また、全体の列が15列で条件が入っているのが14列目だったので、下記の様に変更したら線は、引けたのですが3行までしか線をひく事ができませんでした。何か、行数の指定もする必要があるのでしょうか?大体、4000行あります。
本当に何度もすみませんが教えてください。よろしくお願いします!!

Sub test()
Dim i As Long
Cells.Borders(xlEdgeBottom).LineStyle = xlNone
For i = Range("A65536").End(xlUp).Row To 1 Step -1
If Cells(i, 14).Value = "N100" Then
With Range(Cells(i, 1), Cells(i, 15)).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
End With
Exit Sub
Else
With Range(Cells(i, 1), Cells(i, 15)).Borders(xlEdgeBottom)
.LineStyle = xlNone
End With
End If
Next i
End Sub

表のイメージはこんな感じです。(列は、省略してます)
9101860みかん  N100 D
9202368りんご  N100D
9302067パイン  N100 D 
9502626キュウイ N110D
9502704すいか  N110D
9502705マンゴ  N110D
9600694いくら N120D
9600706えび N120D
9600744回想 N175D 

補足日時:2006/02/24 10:06
    • good
    • 0

>このプログラムは、「Visual Basic Editeor」に入力するということでしょうか?


はいそうです。
プロジェクトのところで右クリックして標準モジュールを追加して、その中に
貼り付けます。

この回答への補足

返答をありがとうございました!!
早速、実際に貼り付けてみたらできました。
ただ、このプログラムはN100に関して線を引くようになっているようですが、他の例えばN110とかN210とか複数条件がある場合は、プログラムの「Value = "N100" Then」の"N100"のところに"N110"と付け足して行けば良いのでしょうか?
何度も申し訳ございませんが教えてください。
よろしくお願いします。

補足日時:2006/02/23 00:16
    • good
    • 0

こんにちわ。



条件付書式で解決できます。

使い方わからなかったらまた質問してくださいね。
    • good
    • 0
この回答へのお礼

返答、ありがとうございました!!
一度、試してみます。

お礼日時:2006/02/21 22:12

条件付き書式を使えば範囲内のシートの地の色を変更する事や罫線を変更する事は可能ですが、太線にする事はできないようです。

ですが地の色を別の色にするなどして色の変更で確認する事は可能です。
設定方法は、範囲指定後、[書式]から[条件付き書式]で[セルの値]が次の値に等しいの後に値を入れていきます。この後、[書式]をクリックして、任意の[書式]に変更します。
ただし、一つのセルに設定できる書式は3つまでです。

参考URL:http://hamachan.fun.cx/excel/jyoken.html
    • good
    • 0
この回答へのお礼

返答、ありがとうございました!!
一度、試してみます。

お礼日時:2006/02/21 22:25

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルの質問です。条件によってセルに斜線を引きたいのですが。

出勤表で備考の欄に”休み”と入力すると
出勤日の出勤時間、退勤時間、休憩時間の
それぞれのセルに斜線を引く設定がしたいのですが…。
初歩的な質問ですみません。
分かる方、教えて下さい。

Aベストアンサー

どうしても斜線が必要なら、ワークシートのイベントを使うしか無いです。
E列:備考
B-D列が時間記入欄とします。
記入範囲は5-30行目まで。

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rc As Variant
Set Rc = Intersect(Target, Range("E5:E30"))

If Not Rc Is Nothing Then
With Range(Target.Offset(0, -3).Address & ":" & Target.Offset(0, -1).Address)
If Target.Value = "休み" Then
.Borders(xlDiagonalUp).Weight = xlHairline
'.Borders(xlDiagonalUp).LineStyle = xlDash
'.Borders(xlDiagonalUp).LineStyle = xlDot
.Borders(xlDiagonalUp).LineStyle = xlContinuous
.Borders(xlDiagonalUp).ColorIndex = 3
Else
.Borders(xlDiagonalUp).LineStyle = xlNone
End If
End With
End If



End Sub

どうしても斜線が必要なら、ワークシートのイベントを使うしか無いです。
E列:備考
B-D列が時間記入欄とします。
記入範囲は5-30行目まで。

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rc As Variant
Set Rc = Intersect(Target, Range("E5:E30"))

If Not Rc Is Nothing Then
With Range(Target.Offset(0, -3).Address & ":" & Target.Offset(0, -1).Address)
If Target.Value = "休み" Then
.Borders(xlDiagon...続きを読む

QExcel、条件付書式で、自動で線を引く

Excel、条件付書式で、自動で線を引く

宜しくお願いします。

Excelの表があります。
担当毎に顧客をまとめています。
担当が変わる位置に区切り線を自動に引けるように、条件付書式で出来ないでしょうか。
表は、図の通りです。

行4 行7下部に区切り線を引いていますが、このようなことが、条件付書式で出来ないか教えてください。
図 行9下部には区切り線が引かれていませんが、此は、比較のためにそうしているのであり、
区切り線を引きたいです。

どこかでみたような気がして、さがしたのですが、わかりません。
御願いします。

Aベストアンサー

条件付き書式では、罫線の太さが変えられません。
そこで、区切りではない箇所の罫線は実線ではなく細かい点線にした方が良いでしょう。
周囲と縦の罫線のみ普通に引いておいて、A2:C11を選択して以下の様な条件付き書式を設定します。

条件1 数式が =($A3="") 書式 細かい点線を下線に
条件2 数式が =($A3<>"") 書式 破線を下線に

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

Excelのマクロの質問です。
セルの値が特定の値の時に太枠の罫線でそのセルのみを囲むマクロを作りたいのですが、どのように記述したらよいのでしょうか?
10×30ぐらいの範囲に複数個該当セルがあります。
値は「休」、「土」などの漢字です。

Aベストアンサー

10×30ぐらいの範囲を仮にA1:AD10とした場合、セルの値が「休」、「土」の場合に太枠で囲みます。

Sub test01()
For Each c In Range("A1:AD10")
If c.Value = "休" Or c.Value = "土" Then
With c.Borders
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
End If
Next
End Sub

QExcelの条件付き書式設定の太い罫線

Excel 2000 です。

条件付き書式の「書式」ボタンを押して表示される「セルの書式設定」の罫線タブの「線」の「スタイル」には、太い線がありません。

条件付き書式では、太い罫線は設定できないということでしょうか。

Aベストアンサー

太線を指定させないようです。
VBAで線の太さは
With Selection.FormatConditions(1).Borders(xlLeft)
.LineStyle = xlContinuous
.Weight = xlThin
のxlThinのところで指定してます(マクロ記録)。
xlThick(太線)に変えて実行してみると、設定できませんとエラーになります。それから考えても、制限しているらしい。
「エラーが出ずに、何の効果なし」のパターンではないので、制約しているのはハッキリしてます。しかしなぜ、そこまでするのか疑問です。(エクセル2000)

Q指定した文字があった場合、その行を削除するマクロが欲しいです

指定した文字があった場合、その行を削除するマクロが欲しいです
Sheet1(Sheet1以外は対象外)のB列に
XYZ
という文字があった場合、その行をすべて削除する
というマクロはどのように作ればいいでしょうか?
お時間ある方アドバイスいただければ幸いです。

Aベストアンサー

手抜きですがこんな感じでどうでしょう。
削除する行が多いなら画面更新を停止した方が良いでしょう。

Sub Sample()
 Sheets("Sheet1").Select
 Do While (True)
  Columns("B:B").Select
  Set mySelect = Selection.Find(What:="XYZ")
  If mySelect Is Nothing Then Exit Do
  Rows(mySelect.Row).Select
  Selection.Delete Shift:=xlUp
 Loop
End Sub

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

EXCEL2000です。

CSVファイルを取り込んでエクセルシートに貼り付け(値だけを貼り付け)、罫線を受けて書式を整えるマクロを記録したいと思っています。

が、読み込むファイルのレコード数が毎日違う(10から100件程度)ので、取り込んだエクセルシートのセルに罫線がうまくつけられません。先に200程度セルに罫線をつけておく事も考えたのですが、そうすると印刷時にレコードのない部分まで印刷されてしまいます。一枚の紙に15件ほどしか入らないので、10の時に200だと何もレコードの入っていない紙が13枚ほど出てきてしまうのです。

レコードは横もちなのですが、ところどころ虫食いもあります。ただ、必ずB列だけはレコードがあります。

いくつかロジックを考えてみました。

1)Bのセルがnullでなければ、その横A1-D1までに罫線を引く。Bのセルがnullになったら罫線は引かない。それぞれセルごとに罫線が要ります。

2)Bのセルがnullでないセルまでを選ぶ方法。印刷のオプションに選択した範囲を印刷、というのがあるので、レコードが入っている範囲を選択する方法があればそれでもできるかなと。

どなたか教えていただければ幸いです。また、他に案があればよろしくお願いします。

EXCEL2000です。

CSVファイルを取り込んでエクセルシートに貼り付け(値だけを貼り付け)、罫線を受けて書式を整えるマクロを記録したいと思っています。

が、読み込むファイルのレコード数が毎日違う(10から100件程度)ので、取り込んだエクセルシートのセルに罫線がうまくつけられません。先に200程度セルに罫線をつけておく事も考えたのですが、そうすると印刷時にレコードのない部分まで印刷されてしまいます。一枚の紙に15件ほどしか入らないので、10の時に200だと何もレコードの入っていない紙が13枚...続きを読む

Aベストアンサー

下記の要領で。

Public Sub MakeLine()
With Application.ActiveSheet.UsedRange
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlInsideVertical).LineStyle = xlContinuous
.Borders(xlInsideHorizontal).LineStyle = xlContinuous
End With
End Sub

下記の要領で。

Public Sub MakeLine()
With Application.ActiveSheet.UsedRange
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlInsideVertical).LineStyle = xlContinuous
...続きを読む

Qエクセル 4行ごとに線を引きたい

百件くらいデータを入力したのですが

4行間隔で下線を引きたくなりました。

いちいち、手動で4行降りては罫線をクリックしているのですが
そうではなくて、自動で引けるなにかイイ方法がありましたら
お教え下さい。

Aベストアンサー

条件付き書式で出来ます。
http://www.atmarkit.co.jp/fwin2k/win2ktips/328cellstyle/cellstyle.html

QEXCEL あるセルに数字が入力されれば既存マクロ実行させたい

ボタン等のグラフィックオブジェクトのマクロ実行は簡単なのですが、
ある位置のセルにデーターが入力されれば、
既存のマクロを自動実行させることできますか?

Aベストアンサー

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
if Range(ある位置) <>"" then call 既存のマクロ名
End Sub

ある位置と既存のマクロ名を変更して使ってみてください。
あと このVBAは 操作するワークシートのほうに記述します。

Qあるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように

お世話になります。

表題の通り、
あるセルに特定の文字列を打つと、
他のセルにあらかじめ決められた文字が自動入力するようにしたいです。

具体的に言うと、
(1)セル(A,1)に「キリン」と打ち込むと

   A   B   C   D
1 キリン
2
3
4

(2)1列目の B,C,Dに予め決めておいた文字が入力されるようにしたい

   A   B   C   D
1 キリン 首  長い  アフリカ
2
3
4

のです。
エクセルで可能でしょうか?
詳しい方よろしくお願いいたします!

Aベストアンサー

出来ます。この場合はキリンがキーになっていますね。
先ずこのキーをもとにSheet2にデータを登録しておきます。
   A   B   C   D
1 キリン 首  長い  アフリカ
2 ゾウ  鼻  長い アフリカ
3 
4
次に表示させたいセルに
 A   B             C           D
1  =VLOOKUP(A1,Sheet2!A:D,2) =VLOOKUP(A1,Sheet2!A:D,3) ″ 
2  =VLOOKUP(A2,Sheet2!A:D,2) =VLOOKUP(A2,Sheet2!A:D,3) ″
3  =VLOOKUP(A3,Sheet2!A:D,2) =VLOOKUP(A3,Sheet2!A:D,3) ″
4  =VLOOKUP(A4,Sheet2!A:D,2) =VLOOKUP(A4,Sheet2!A:D,3) ″

を入れておきます。
これで出来ると思います。
エラー表示がいやな場合は、=IF(A1="","",VLOOKUP(A1,Sheet2!A:D,2)) の様にして下さい。

出来ます。この場合はキリンがキーになっていますね。
先ずこのキーをもとにSheet2にデータを登録しておきます。
   A   B   C   D
1 キリン 首  長い  アフリカ
2 ゾウ  鼻  長い アフリカ
3 
4
次に表示させたいセルに
 A   B             C           D
1  =VLOOKUP(A1,Sheet2!A:D,2) =VLOOKUP(A1,Sheet2!A:D,3) ″ 
2  =VLOOKUP(A2,Sheet2!A:D,2) =VLOOKUP(A2,Sheet2!A:D,3) ″
3  =VLOOKUP(A3,Sheet2!A:D,2) =VLOOKUP(A3,Sheet2!A...続きを読む

QエクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?

ワークシート関数で書けば
=IF(OR(F18=0,AND(F15>0,F16>0)),TRUE)です。
これをVBAで書こうとして

If Sheet1.Range("F18") = 0 Or Sheet1.Range("F15") > 0 And Sheet1.Range("F16") > 0 Then
MsgBox True
Else
MsgBox False
End If

とやってみたのですが、正しくないようです。
どのように書けばいいのでしょうか?

Aベストアンサー

>とやってみたのですが、正しくないようです。

式は正しいと思いますよ

ANDとORは、ANDが先に演算されます。/*と+-では、/*が先に演算されるようなものです。

でも、わかり易くするために、#1のかたのように括弧をつけるほうが良いですね。


人気Q&Aランキング