エクセルでB5~F18に掛けて表があります。
この表は毎日1表ずつ分あり、使わない日は右上から左下に向かって斜線を引きます。
オートシェイプで引いた線をマクロで記録して引いているのですが、誤って引いてしまった時の消去マクロが作れないかな、と考えているのですが、可能でしょうか?
マクロの記録で、オートシェイプをクリックしてDeleteとやってみたのですが、うまくいきません。
どうやら線を引くたびに番号がつくらしく、その番号の線を消す、という風に記録してしまう為、エラーになってしまうようです。
表に斜線が引ければ良い訳で、他に方法があるのならそれで構いませんし、表は印刷してペーパーで保管しています。
何か良い方法がありましたら、宜しくお願い致します。
ちなみに今、描写の為に使っているマクロは下記の通りです。
Sub Macro2()
ActiveSheet.Shapes.AddLine(15.75, 59.25, 323.25, 475.5).Select
Selection.ShapeRange.Flip msoFlipHorizontal
End Sub
No.3ベストアンサー
- 回答日時:
>どうやら線を引くたびに番号がつくらしく
その通りのようですよ。
>その番号の線を消す、という風に記録してしまう為、エラーになって
マクロの記録の限界ですね。この線(オブジェクト)の指定を相対化するのが勉強の難しいところと思います。
----
Sub test03()
Dim 図形 As Shape
For Each 図形 In ActiveSheet.Shapes
If 図形.Type = msoLine Then
図形.Delete '図形を削除する
End If
Next
End Sub
これを実行してみて、いかがでしょうか。
(参考)
名前の捉え方
Sub test02()
n = Selection.Name
MsgBox n
Worksheets("sheet5").DrawingObjects(n).Delete
End Sub
Sheet名は適宜変えるか、Activesheetでも良い。
この回答への補足
実はこれでも充分なんですが、アクティブシートの罫線が全部消えてしまいますよね。私が説明しなかったのが悪いのですが、実は表は1シートに6個あるんです。マクロはそれぞれの表に描写の為に6個あります。消すボタンも6個つけるとして、範囲を指定して消去することは出来るんでしょうか・・。もしこれが出来たら言うことなしです!
補足日時:2004/11/17 22:57No.4
- 回答日時:
セルを結合して罫線の斜線を引くマクロと
罫線の斜線を消去してセルの結合を解除するマクロ
を作るといいと思います。
この回答への補足
表には文字や計算式が入っていて、見た目を崩さずに上から線を引きたいんです。セルを統合してしまうと罫線や文字が消えてしまうんですよね。
補足日時:2004/11/17 23:03No.5
- 回答日時:
>表には文字や計算式が入っていて
#4です。
そうですね。私は、バカでした。いい加減なことをいってすみません。
#2で、左右反転するのは、
「Flip msoFlipHorizontal」だからです。
表の位置が決まっているなら
#2で言われるように、あらかじめ引いておいて、非表示にするのがいいかもしれませんね。
No.6
- 回答日時:
#3です。
その補足の
>、範囲を指定して消去することは出来るんでしょうか
一晩考えたけれど、私のできる程度では良い方法はない。
(1)名前で判別
自分で分類した名前を付ければ,あるいは区別できるかも知れないが、多数あれば面倒だし、プログラム内固定なので事後増減すればお手上げ?。
Sub Macro2()
ActiveSheet.Shapes.Range(Array("Rectangle 9", "Line 10", "Oval 11")).Select
Selection.
のArrayの中を充実する。
(2)グループ化
グループ化が出来るようなので、これが使えるかも知れないが。捉え方(ネーミング)が私には判らないので勉強します。ただし事後の使用者の増減にはお手上げ?
(3)位置
「.Top」「,Left」の2つで範囲内にある図形かどうか
判別する。これも面倒そう。
No.7
- 回答日時:
#2です
対象のコピーはしていないです。
オブジェクトを全部削除。
オートシェイプで斜線を引いておく(全て)
マクロの記録でオブジェクトの選択
一つづつ連続選択
マクロ記録を停止
マクロの編集で
ActiveSheet.Shapes("Line 1").select
ActiveSheet.Shapes("Line 2").select
ActiveSheet.Shapes("Line 1").visible = true
'表示
ActiveSheet.Shapes("Line 2").visible = false
'非表示
で出来るはずなんですが
("Line 1")の部分が引く度に数字が増えていってしまうので、うまくいかないようです。斜線は引く日が決まっている訳ではなく、誤って引いて消去したい時も何番目の斜線なんだか予測出来ないので・・・。うまくは行きませんでしたが考えていただいてありがとうございました(^^)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】プリントスクリーンした画像をエクセルに貼付して印刷したい 6 2022/11/30 20:11
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Excel(エクセル) エクセルの表でダブりを解消する方法を、教えてください。 5 2023/04/12 12:11
- その他(Microsoft Office) 選択行の列範囲に二重線を引く 3 2022/06/08 12:21
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のシートのクリ...
-
Excelで数字を入れたら対応する...
-
Excelのシート上のShapeにイベ...
-
Excel VBAでのWorksheet_Change...
-
エクセルファイルを開いた回数...
-
エクセルで○をつけるマクロ設定
-
エクセル シート内の一番下のセ...
-
excel定数の違いについて。xlAu...
-
長い時間かかるマクロが実行中...
-
エクセル:セル内の文字列の最...
-
フォルダ内にある全ファイルの...
-
エクセルのワークシート(テン...
-
Excelでセル内の文字をファイル...
-
【エクセル】フリーワード検索...
-
複数のブックに一括で値入力す...
-
エクセルで特定の行だけ行削除...
-
エクセルでマクロを作りすぎた...
-
指定値をマクロで検索&シート移動
-
エクセルのマクロでコマンドボ...
-
Excelマクロでブック全体を検索...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
Excelで数字を入れたら対応する...
-
エクセルで複数のシートのクリ...
-
エクセルファイルを開いた回数...
-
Excelのシート上のShapeにイベ...
-
エクセルで特定の行だけ行削除...
-
長い時間かかるマクロが実行中...
-
エクセル シート内の一番下のセ...
-
【エクセル】フリーワード検索...
-
Excelでセル内の文字をファイル...
-
【エクセル】「実行時エラー’10...
-
シートではなくBOOK間で重複し...
-
フォルダ内にある全ファイルの...
-
EXCELのダイアログシートって、...
-
エクセル:セル内の文字列の最...
-
自分の専門分野の仕事。初見で...
-
セルの一部分だけを太字にする方法
-
エクセルで○をつけるマクロ設定
-
エクセル マクロ 一定時間おき...
-
Excelにて、同じ画像を複数のセ...
おすすめ情報