• ベストアンサー

セルを結合しないで、一番上セル右上から一番下セル左下への斜線・・・

エクセルで・・・  A1からA2,A3,A4・・・と下へ見てきて、   A3が空白ではなかったら、A1セル右上からA2セル左下へ斜線を引く・・・   A4が空白ではなかったら、A1セル右上からA3セル左下へ斜線を引く・・・ というように設定したいのですが、 このとき、セルを結合したくない場合は、図形を使う以外に方法はありますか? また、図形を使うとしたら、セルがいくつ空いているかを判定させて、 使う図形を決めておかなくてはならないと思うのですが、 その設定の仕方を教えてください。 できましたら具体的に記述して教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

結合しないで線を引く方法は思いつきませんでした。 >また、図形を使うとしたら、セルがいくつ空いているかを判定させて、 >使う図形を決めておかなくてはならないと思うのですが、・・・ 使う図形を決めておくのも面倒(何個定義すればいい?)なので、自動的に線を引くVBAを書いてみました。線を引きたい列の範囲(連続範囲)を選択して実行します。 質問から、どの列を選択するかは任意ですが、選択列数は1としてあります。 標準モジュールに貼り付けます。 Public Sub myLineAdd()   Dim Retu As Integer '線を引く列   Dim rg As Range 'セル   Dim myLine As Shape '線   Dim rgStart, rgEnd As Range '線を引くために基準となる開始セル、終了セル   Dim srtX, srtY, endX, endY As Double '線の位置(開始x,y、終了x,y)   Dim selStart, selEnd As Long '処理を行う開始行、最終行   Dim rw As Long '行カウンタ   With Selection     Retu = Val(.Column) '線を引く列をセットする     selStart = .Cells(1, 1).Row '対象の最初の行     selEnd = .Cells(.Rows.Count, 1).Row '対象の最後の行   End With   For rw = selStart To selEnd     If Cells(rw, Retu) = "" And rgEnd Is Nothing Then       Set rgEnd = Cells(rw, Retu) '空白セルの最初(線を引く最後)     End If     If Cells(rw, Retu) <> "" And Not rgEnd Is Nothing Then       Set rgStart = Cells(rw - 1, Retu) '空白セルの最後(線を引く最初)       '線を引くための座標       srtX = rgStart.Left '開始横座標       srtY = rgStart.Top + rgStart.Height '開始縦座標       endX = rgEnd.Left + rgEnd.Width '最終横座標       endY = rgEnd.Top '最終縦座標       '線を引く       Set myLine = ActiveSheet.Shapes.AddLine(srtX, srtY, endX, endY)       Set rgEnd = Nothing '空白セルの最初を初期化     End If   Next   Selection.Cells(1, 1).Select '選択解除 End Sub

iillyy
質問者

お礼

いつもご丁寧なコメントつきのマクロ・・・本当にありがとうございます。 またお世話してください。。。是非ー。。。

関連するQ&A

  • エクセル セル内に斜線をいれたいのですが。

    体重表を作って毎日記録しているのですが、記録を忘れてしまった 日などセル内に斜線をいれたいのですが(/)セル内の右上の角から 左下の角まで斜線をいれたいのに「斜線」と入力すると/は出てくる けれど、セル内の真ん中に斜線が小さくはいるだけでセル内 いっぱいには入力する事ができません。 どうするばセル内いっぱいに斜線を引く事ができるのでしょうか? インターネットを検索した遊ぶぐらいでエクセルやワードなどは さっぱり使いこなせない初心者です。 すみませんが、どなたかご存知の方いらっしゃったら教えて頂けますか? よろしくお願いいたします。

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

    Excel データ入力に応じて自動的に斜線を引きたいのですが ご覧いただきありがとうございます。エクセルで、データが入力されていないときはセルに斜線が引かれていて、データが入力されたら自動的にその斜線が消えるようにできるでしょうか。お分かりになられる方がいらっしゃいましたら、ご教示ください。 AC66:AJ67のセルが結合されていて、それが下にAC88:AJ89まで計11あります。 AC66:AJ67に数値が入った場合はその下のセルからAC88:AJ89までを一本の斜線(右上から左下の線)を引き、同じように2段目まで数値が入っている場合は2段目から一番したの段までを斜線を引きたいと思っています。 2段目に数値が入っている場合は必ず1段目にも数値が入っている状況です。 またその結合されたセルはIF関数が入っていて、他の入力用シートにリンクしています。入力用シートに数値が入っていない場合は空白で表示される状況です。 VBAを使って自動的に斜線を入れたいと思っています。 分かりにくい説明ですみませんが、添付の画像を見てください。 どなたかわかる方がいらっしゃいましたらお願い致します。

  • Excelでセルとセルを結合したいのですが・・・

    質問させていただきます。 Excel2007を使っています。 複数のセルを結合して一つのセルにまとめる作業をしているのですが、 =A1&" "&A2&" "A3 のようにすると結合できました。&" "&でスペースも確保できました。 しかし、結合するデータの中に空白があります。 データの中の空白を無視し、スペースを消してほしいのですがどうすればよいかわかりません。 例えば、A1にデータがない場合、スペースが空いてからA2が出てきます。 その空白をなくす方法を教えてください。お願いします。

  • Excelでセルに斜線を引く場合

    Excelで結合したセルにセルの書式設定から罫線で斜線を引くと文字が中央に行ってしまいます。横は右揃えとか出来るのですが縦は出来ないのでしょうか? (文字を左上ぞろえにしたいんです。)

  • 【Excel VBA】空白の結合セルに右上り斜線を引く

    Excel VBAは初心者です。 仕事で必要なため、アドバイスをいただけると非常に助かります。 よろしくお願いします。 【VBAで実現したいこと】  下記のようなセルで構成されている簡単な  申請書を作成しております。    結合セル1:ABCD列と4行目で結合されたセルで、氏名を入力します。  結合セル2:EFGH列と4行目で結合されたセルで、氏名を入力します。  結合セルA:ABCD列から5678行で結合されたセルです。  結合セルB:EFGH列から5678行で結合されたセルです。  ※結合セル1、2~10まで存在し、結合セルA、B~Jまで存在します。  結合セルAは結合セル1を参照し、結合セル1が空欄の場合  結合セルAに右上りの斜線を引きます。結合セル1が空欄でない場合、  何もしません。  結合セルBは結合セル2を参照し、結合セル2が空欄の場合  結合セルBに右上りの斜線を引きます。結合セル2が空欄でない場合、  何もしません。  同様な処理を、結合セルJ、結合セル10まで行います。 【教えていただきたいこと】  1.結合セルA~J、結合セル1~10全てが空欄だった場合、   空欄の結合セルは右上りの斜線を引きます。   下記のプログラムを作成しましたが、右上りの斜線が   引けません。   どのようにしたら良いでしょうか。     2.上記「VBAで実現したいこと」を行うためには、   下記のプログラムにどのような追加を行えば良いでしょうか。 【作成したプログラム】 Private Sub worksheet_change(ByVal target As Range) Dim i As Range For Each i In target If i.MergeArea.Value = "" Then i.MergeArea.Borders(xlDiagonalUp).LineStyle = xlContinuous Else i.MergeArea.Borders(xlDiagonalUp).LineStyle = xlNone End If Next i End Sub 以上、よろしくお願いします。

  • 結合セルを見つけるには

    並べ替えをしようとすると、結合を解除するように表示されました。 Excel2007について、結合セルの箇所を見つける方法を教えて下さい。 なお、1行目にカーソルを置き、列ごとにctrl+下矢印キーで、下方にカーソルが移動すると、 結合セルでカーソルが止まり見つかります。 しかし、これでは、空白セルがある場合や列数が多い場合面倒です。

  • セルの結合をしたら、左下の方からしか入力できません

    エクセル2003でセルの結合をしました。セルの中は左揃えにしましたが、入力しようとすると左下の方からしか入力できません。左の上から入力できるようにはならないのでしょうか? わかる方、よろしくお願いします。 回答、お待ちしてます。

  • Excel(セルの結合マクロ)

    いつもお世話になっております。 Excelのマクロで、選択範囲の中で、下のセルが空白のものは、上のセルと結合されるマクロを作りたいと考えています。 (例1:A1セルに”TEST”が入力されており、A2,A3セルが空白として、A1:A3を選択し、マクロを実行するとA1からA3がセル結合される  例2:A1に”TEST2”B2に"TEST3"が入力されており、A1:B3を選択すると、A1からA3が結合され、B2とB3も結合される) 説明が下手で申し訳ないのですが、お力を貸していただけませんでしょうか? よろしくお願いいたします。

  • エクセル セルに斜線を引きたい

    エクセルで表を作っています。 罫線(田の字形のアイコン)で罫線を書いたのですが、空白のセルに斜線を引きたいと思っています。 どうする方法が簡単でしょうか? 宜しくお願いいたします。

  • 複数セルに一本の斜線を引く

    こんにちは。エクセル2000を使用しています。 斜線を引くにはセルの書式で設定するか、オートシェイプを使えばできますが、複数のセル(例A1:C2)に一本の斜線をひく場合オートシェイプを使わずにひく方法はないでしょうか?オートシェイプだとセルの幅や高さを変更するとズレてしまいます。なにかよい方法はありませんか。よろしくお願いします。

専門家に質問してみよう