ここから質問投稿すると、最大4000ポイント当たる!!!! >>

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

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

A 回答 (4件)

どうしても斜線が必要なら、ワークシートのイベントを使うしか無いです。


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
    • good
    • 1
この回答へのお礼

ワークシートのイベントってマクロですよね。
すみません。まだよくマクロが分からなくてうまく設定できませんでした。

教えていただいてありがとうございました。

お礼日時:2005/06/14 10:10

#2さんのおっしゃっている、「違うセルを指定してそれを条件にして書式」ということは可能です。


ただし、適用できる書式に「斜線」はないです。
条件付書式で、「数式が」を選び、
「=(備考欄のセル番号)="休み"」とすれば、
(たとえば備考欄が「D20」なら、=$D$20="休み" となります)
休みと入力した場合の書式設定ができます。
斜線が無理なので、セルにグレイの網掛け設定をする
くらいが視覚的には近いのでしょうか。
    • good
    • 4
この回答へのお礼

”違うセルを指定してそれを条件にして書式”というのができるんですね。数式でセルを$で固定して…までは確かにできるんですが。教えて頂いたようにグレーの網掛けをしたら確かに”お休み”な感じしますよね。この際斜線はあきらめてこの方法でやってみようかと思います。

ありがとうございました。

お礼日時:2005/06/13 15:55

こんにちは、はじめまして!


質問の内容は、備考欄に「休み」と入っていなければ時間の欄には斜線は入らず、
「休み」と入力したら斜線が自動的に入るように…というコトですよね?^^

エクセルの書式の中の「条件付き書式」というのがあるのですが、
例えばこの場合、時間の入ったセルに条件をつけてそれによって書式を変える…とかならできるのですが、
違うセルを指定してそれを条件にして書式をというのはできないような気がします。
他に思い当たるやり方が見つかりません。。
もしかしたらマクロならできるかもしれないけど…エクセルではマクロはあまり使いたくないですよね。(汗)

提案ですが先に書いた条件付き書式で、
時間のセルが「0:00」なら斜め斜線を引くように設定するのはダメですか?
よいアドバイスができなくてすみません。

この回答への補足

"時間のセルが「0:00」なら"の意味がわかりました。
勤務時間以外の時間設定でセルに斜線を引くということですかね。
条件付き書式では罫線タグに斜線はないんです。

マクロ以外に今のところ方法はないようです。
初心者ゆえ、マクロはまださわりしかわからないんです。^^;これを機会にマクロももっと勉強したいと思います。

補足日時:2005/06/14 10:01
    • good
    • 2
この回答へのお礼

説明不足で申し訳ありません。
冒頭で述べられている通り”休み”と入れるセルとは異なるセルに斜線を入れる設定にしたいのです。

条件付き書式で罫線は使えても斜線は使えないですよね。VLOOKUPとか関数を使うのかとも思ったんですがなかなかいい案が浮かばなくて…。

いろいろ考えていただいてありがとうございます。

>提案ですが先に書いた条件付き書式で、
時間のセルが「0:00」なら斜め斜線を引くように設定するのはダメですか?
この説明を詳細にいただいてもよろしいでしょうか?
条件付き書式で設定できるのであればよろしくお願いします。

お礼日時:2005/06/13 15:12

斜線を引きたいセルにカーソルを合わせ右クリック→セルの書式設定→罫線で選ぶ。

この回答への補足

いや、そうじゃなくて…。
説明不足ですみません。
”休み”と入力するだけでセルの書式設定のように斜線がひけたらというものなんですが。
セルの書式設定では罫線の設定はできないですよね?

補足日時:2005/06/13 12:38
    • good
    • 1

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Q条件付き書式で自動で斜線の罫線を引く

例えば、A1に『×』と入力された場合、B1のセルに斜線の罫線を自動的にひくような条件付き書式の設定をしたいのですがうまくいきません。マクロは難しいので条件付き書式で対応したいと考えておりますが、どなたか方法をご教示いただけませんでしょうか。
ちなみにExcel2007を使用しています。
以上、よろしくお願いいたします。

Aベストアンサー

あくまでもサンプルですのでかなり手抜き版ですが、こんな感じでワークシートモジュールに作る事になるかと……。

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim rOne As Range
 For Each rOne In Target
  If (rOne.Address = "$A$1") * (rOne = "×") Then
   Range("B1").Select
    With Selection.Borders(xlDiagonalUp)
     .LineStyle = xlContinuous
    End With
  End If
 Next
End Sub

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QExcel データ入力に応じて自動的に斜線を引きたいのですが

 ご覧いただきありがとうございます。エクセルで、データが入力されていないときはセルに斜線が引かれていて、データが入力されたら自動的にその斜線が消えるようにできるでしょうか。お分かりになられる方がいらっしゃいましたら、ご教示ください。

 セル範囲はA1:C7で、A1とB1には常にデータが入っています。残りのセルに、以下のような感じで斜線を引きたいのです。(黒丸はデータが入っているセルを、白丸は空白セルを表しています)

(最初の状態)
  A B C
1 ● ● ○ → C1セルの左上隅から右下隅にかけて斜線
2 ○ ○ ○ → A2セルの左上隅からC7セルの右下隅にかけて
3 ○ ○ ○   1本の斜線
4 ○ ○ ○
5 ○ ○ ○
6 ○ ○ ○
7 ○ ○ ○

(データを追加した状態:ア)
  A B C
1 ● ● ● → C1セルの斜線は消える
2 ● ● ○ → C2セルの左上隅から右下隅にかけて斜線
3 ○ ○ ○ → A3セルの左上隅からC7セルの右下隅にかけて
4 ○ ○ ○   1本の斜線
5 ○ ○ ○
6 ○ ○ ○
7 ○ ○ ○

(データを追加した状態:イ)
  A B C
1 ● ● ● → C1セルの斜線は消える
2 ● ● ●
3 ○ ○ ○ → A3セルの左上隅からC7セルの右下隅にかけて
4 ○ ○ ○   1本の斜線
5 ○ ○ ○
6 ○ ○ ○
7 ○ ○ ○

 以下、データ入力が進むにつれて、斜線が自動的に引き直されてほしいです。また、いったん入力したデータを削除したら、斜線は復活してほしいです。データをとびとびに入力したり削除したりすることはありません。

 わかりにくい説明で恐縮ですが、よろしくお願いいたします。

 ご覧いただきありがとうございます。エクセルで、データが入力されていないときはセルに斜線が引かれていて、データが入力されたら自動的にその斜線が消えるようにできるでしょうか。お分かりになられる方がいらっしゃいましたら、ご教示ください。

 セル範囲はA1:C7で、A1とB1には常にデータが入っています。残りのセルに、以下のような感じで斜線を引きたいのです。(黒丸はデータが入っているセルを、白丸は空白セルを表しています)

(最初の状態)
  A B C
1 ● ● ○ → C1...続きを読む

Aベストアンサー

ちょっと変えてみました。もっとすっきり書けると思うのですが・・・。

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim LastRow As Integer
Dim n As Integer
Dim TopR As Integer
Dim LeftC As Integer
Dim numR As Integer
Dim numC As Integer

TopR = 3 '先頭の行
LeftC = 3 '先頭の列
numR = 7 '行数
numC = 3 '列数

If Target.Row >= TopR And Target.Column >= LeftC _
And Target.Row <= TopR + numR - 1 And Target.Column <= LeftC + numC - 1 Then
LastRow = Cells(TopR + numR, LeftC).End(xlUp).Row '最終行
n = numC - Application.WorksheetFunction.CountBlank _
(Range(Cells(LastRow, LeftC), Cells(LastRow, LeftC + numC - 1))) '最終行の入力セル数

With ActiveSheet.Shapes("LongLine") '長い斜線の設定
.Left = Cells(TopR, LeftC).Left
.Top = Cells(LastRow + 1, 1).Top
.Height = Cells(TopR + numR, 1).Top - .Top
If LastRow = TopR + numR - 1 Then
.Width = 0
Else
.Width = Cells(1, numC + 1).Left
End If
End With

With ActiveSheet.Shapes("ShortLine") '短い斜線の設定
If n = 3 Then
.Height = 0
Else
.Height = Cells(LastRow, 1).Height
End If
.Top = Cells(LastRow, 1).Top
.Left = Cells(1, LeftC + n).Left
.Width = Cells(1, LeftC + numC).Left - .Left
End With

End If

End Sub

.Top :セルや図形の左上のy座標
.Left :セルや図形の左上のx座標
.Height :セルや図形の高さ
.Width :セルや図形の幅

これらをセル位置に応じて設定しています。
Cells(行番号, 列番号)

以下を適宜変更してください。
TopR = 3 '先頭の行
LeftC = 3 '先頭の列
numR = 7 '行数
numC = 3 '列数

ちょっと変えてみました。もっとすっきり書けると思うのですが・・・。

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim LastRow As Integer
Dim n As Integer
Dim TopR As Integer
Dim LeftC As Integer
Dim numR As Integer
Dim numC As Integer

TopR = 3 '先頭の行
LeftC = 3 '先頭の列
numR = 7 '行数
numC = 3 '列数

If Target.Row >= TopR And Target.Column >= LeftC _
And Target.Row <= TopR + numR - 1 And Target.Column <= LeftC + numC - 1 Then
L...続きを読む

Qエクセルで条件付きで罫線の斜線を引きたいです。

エクセル2007についての質問です。
ある条件のときに罫線の右下がり斜線を引きたいのですが、条件付書式ではできません。
マクロでしなくてはいけないことはわかったのですが、それ以上は進めなくて困っています。

セル(U2)に数字を打ち込んだらセル(I10:J11),(I12:J13),(I14:J15),(L10:Q11),(L12:Q13),(L14:Q15)(結合したもの)にIF関数とINDEX関数を組み合わせて他のシートからセル(U2)に対応するデーターを呼び出しています。
セル(I10:J11)に呼び出した数値が10未満ならセル(L10:Q11)に罫線で右下がりの斜線を入れ、10以上なら右下がりの斜線を消すということが行いたいです。(他の2つの組み合わせでも同様)

当方マクロを組んだことが全くなく本を読んで独学しているのですが、至急必要ということになり当方の技術ではなんともなりません。助けてください。

ちなみにセル(I10:J11)に書いてある関数は=VLOOKUP($U$2,別シート!$A:$I,3,0)
セル(L10:Q11)に書いてある関数は=IF(INDEX(別シート!$A$3:$K$400,$U$2,4)=0,"",INDEX(別シート!$A$3:$K$400,$U$2,4))
といったものです。

エクセル2007についての質問です。
ある条件のときに罫線の右下がり斜線を引きたいのですが、条件付書式ではできません。
マクロでしなくてはいけないことはわかったのですが、それ以上は進めなくて困っています。

セル(U2)に数字を打ち込んだらセル(I10:J11),(I12:J13),(I14:J15),(L10:Q11),(L12:Q13),(L14:Q15)(結合したもの)にIF関数とINDEX関数を組み合わせて他のシートからセル(U2)に対応するデーターを呼び出しています。
セル(I10:J11)に呼び出した数値が10未満ならセル(L10:Q11)に罫線で右下が...続きを読む

Aベストアンサー

I10の内容でL10:Q11に右下がりの罫線を引いたり、消したりなら
下記の内容を、設定するシートのコード欄にコピー&ペーストして確認してください。
マクロの起動は、シート内でセルの移動で実行されます。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("I10").Value < 10 Then
Range("L10:Q11").Borders(xlDiagonalDown).LineStyle = xlContinuous
Else
Range("L10:Q11").Borders(xlDiagonalDown).LineStyle = xlNone
End If
End Sub

Qエクセルでセル内に斜線を引くには

Excel97です。表を作成し、いくつかのセル内で斜線を引きたいのですが、どういう操作をしたらいいですか、ご教示ください。

Aベストアンサー

下記のURLを参照してください。
写真いりでわかりやすくなっています。

参考URL:http://www.excel-jiten.net/cell_format/ruled_line_change_slash.html

Qexcel 空白セルに自動で斜線をひきたいです

EXCEL2007使用しています。

名簿シートと印刷シートがあります。
印刷シートのセルAJ33:AR37の結合セルに=IF(VLOOKUP($J$4,名簿!$A$2:$G$383,7)="","","印")
がはいっています。

このセルが空白ならば斜線を引きたいのですが、なかなかうまくできません。
過去の質問等も参考にしましたが、斜線は引けても、今度は消えません・・・。

ちなみに連続印刷をすでに作ってあるのですが、この連続印刷にも対応させることは可能でしょうか?

A1:C3の結合セルの名前は”番号” 
印刷範囲の入力セルは”自”、”至”としてあります。

Sub 印刷開始()
Range("番号") = Range("自")
Do While Range("番号") <= Range("至")
Sheets("印刷").PrintOut
Range("番号") = Range("番号") + 1
Loop
End Sub


説明力がなくて申し訳ないのですが、どうぞよろしくお願い致します。

Aベストアンサー

すでにNo1さんが回答されてはいますが、
J14セルの数式で、名簿に番号が無かった場合のエラー対策を一応入れています。

あと、(おそらく)印刷範囲外の行数分(10行)だけ、ご質問内容と画像の状態がずれています。
どちらに合わせて作成するか判断しかねますので、統一性を持たせてください。

>印刷シートのセルAJ33:AR37の結合セルに
画像ではAJ43:AR47と見受けられます。

>=IF(VLOOKUP($J$4,名簿!$A$2:$G$383,7)="","","印")
個の数式で参照している「$J$4」は画像では「$J$14」ですよね?

下記コードは画像の状態として作成しています。
「AJ33」に「"印"」や「""」が表示されるのであれば
『Set myRng = Range("AJ43")』を変更してください。

■注意
印刷開始マクロに斜線の切換コードを追加したコードが「VBAコード(1)」になります。
既存の印刷開始マクロと差し換えて利用してください。

ただし、

名前「番号」の範囲A1:C3の手入力時にも斜線を切り替えたい場合は
印刷するシート名を右クリック→コードの表示
最下の「VBAコード(2)」を貼り付けたうえで、
現在の印刷開始マクロはそのまま『変更せずに』利用してください。


■VBAコード(1)

Sub 印刷開始()
Dim myRng As Range
Set myRng = Range("AJ43")
Range("番号") = Range("自")
Do While Range("番号") <= Range("至")
  If IsError(myRng.Value) Then Exit Sub
  With myRng.Borders(xlDiagonalDown)
    If myRng.Value = "" Then
      .LineStyle = xlContinuous
    Else
      .LineStyle = xlNone
    End If
  End With
  Sheets("印刷").PrintOut
  Range("番号") = Range("番号") + 1
Loop
End Sub


■VBAコード(2)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRng As Range
Set myRng = Range("AJ43")
  If IsError(myRng.Value) Then Exit Sub
  With myRng.Borders(xlDiagonalDown)
    If myRng.Value = "" Then
      .LineStyle = xlContinuous
    Else
      .LineStyle = xlNone
    End If
  End With
End Sub

すでにNo1さんが回答されてはいますが、
J14セルの数式で、名簿に番号が無かった場合のエラー対策を一応入れています。

あと、(おそらく)印刷範囲外の行数分(10行)だけ、ご質問内容と画像の状態がずれています。
どちらに合わせて作成するか判断しかねますので、統一性を持たせてください。

>印刷シートのセルAJ33:AR37の結合セルに
画像ではAJ43:AR47と見受けられます。

>=IF(VLOOKUP($J$4,名簿!$A$2:$G$383,7)="","","印")
個の数式で参照している「$J$4」は画像では「$J$14」ですよね?

下記コー...続きを読む

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

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

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

宜しくお願いします。

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

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

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

Aベストアンサー

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

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

QExcelのセルに斜線を引くマクロ

Excel2007を使用しています。
画像のように,「印刷」シートと「データ」シートがあります。
画像のように,「印刷」シートのAO112~BZ112のセルを結合しています。

そのセルには,VLOOKUP関数で,「データ」シート10列目のデータを返すようにしています。
関数を見てもらえば分かるとおり,
もし10列目にデータがなければ(VLOOKUPで値が0なら)””(空白)を返すようにしています。


以上のようなシートで,このセルにデータが無い場合,
画像のAO113~BZ113のように右上がりの斜線を引きたいのです。
もちろん,データが入っている場合は,斜線は消します。

マクロに関しては,まだまだ初心者のため,
ほとんど分からないので,分かりやすく教えていただけませんでしょうか?
お願いします。

Aベストアンサー

No.2です。

次のように変更しました。

If Target.Column = 81 And Target.Row = 2 Then
'Stop
myR = Application.VLookup(Range("$CC$2"), Sheets("データ").Range("1:1048576"), 10, False)
If IsError(myR) Then
Range("AO113:BZ113").Borders(xlDiagonalUp).LineStyle = xlContinuous
Range("AO113:BZ113").ClearContents
Else
Range("AO113:BZ113").Borders(xlDiagonalUp).LineStyle = xlNone
Range("AO113:BZ113").Value = myR
End If

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング