エクセルで・・・
A1からA2,A3,A4・・・と下へ見てきて、
A3が空白ではなかったら、A1セル右上からA2セル左下へ斜線を引く・・・
A4が空白ではなかったら、A1セル右上からA3セル左下へ斜線を引く・・・
というように設定したいのですが、
このとき、セルを結合したくない場合は、図形を使う以外に方法はありますか?
また、図形を使うとしたら、セルがいくつ空いているかを判定させて、
使う図形を決めておかなくてはならないと思うのですが、
その設定の仕方を教えてください。
できましたら具体的に記述して教えてください。
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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Visual Basic(VBA) if関数とifs関数は組み合わせることはできますか。 セルA1が「A」のとき「向日葵」と表示。 セル 4 2023/02/02 20:48
- Excel(エクセル) 現時点の年齢を算出して、その年齢と一致したセルを色付けしたい。 4 2022/06/23 17:49
- Visual Basic(VBA) VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。 5 2022/11/20 09:48
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) IF関数について 5 2023/06/26 00:46
- Excel(エクセル) エクセルを活用した受注表作成の中で関数・数式を教えてください。 3 2022/07/23 08:14
- Excel(エクセル) エクセルの昇順での数値入力のミスの見つけ方を教えてください。 4 2022/06/26 20:41
- Word(ワード) Wordの表中の文字を選択した時の白黒反転の違い 1 2023/04/25 12:13
- Excel(エクセル) xlDownの使い分けについての質問です vbaでxlDownを使って一覧近い空白までのセルをコピー 3 2022/08/04 12:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
Excel > ピボットテーブル「(空...
-
エクセルでCSVを編集するとき、...
-
「データ要素を線で結ぶ」がチ...
-
数式による空白を無視して最終...
-
ピボットテーブルで空白セルの...
-
Excel:関数が入っているセルに...
-
エクセルで、「複数のセルの中...
-
excel2010 空白セルにのみ貼り...
-
【Excel】 csvの作成時、空白セ...
-
空白セル内の数式を残したまま...
-
【Excel】 Ctrl+方向キー で空...
-
関数TRANSPOSEで空白セルを0に...
-
COUNTAで式をカウントしない方法
-
《Excel2000》SUMPRODUCT関数で...
-
エクセルにて負の時間を0:00と...
-
エクセル マクロ 最終列まで...
-
空白を0とみなす関数
-
エクセルのグラフで式や文字列...
-
空白セルがないのにオートフィ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
数式による空白を無視して最終...
-
エクセルでCSVを編集するとき、...
-
ピボットテーブルで空白セルの...
-
excel2010 空白セルにのみ貼り...
-
Excel > ピボットテーブル「(空...
-
空白セル内の数式を残したまま...
-
「データ要素を線で結ぶ」がチ...
-
エクセルで、「複数のセルの中...
-
Excelで、入力文字の後に自動で...
-
エクセル 連番が途切れていると...
-
《Excel2000》SUMPRODUCT関数で...
-
SUMIFS関数で「計算式による空...
-
【Excel】 csvの作成時、空白セ...
-
形式貼り付けの「空白を無視す...
-
Excel:関数が入っているセルに...
-
リンク先が空白若しくはゼロの...
-
エクセルで上の行の値を自動的...
-
エクセルにて負の時間を0:00と...
-
エクセルのグラフで式や文字列...
おすすめ情報