マクロ初心者です。よろしくお願いいたします。
今スケジュール表をマクロで作成するプログラムを作ってます。
「ある実行項目をいつからいつまでの間にやる」というようなものです。
この「いつからいつまで」というのを矢印で書くようにしたいと思ってます。
日にちを入れれば、そこから矢印の座標を計算し矢印を描画するところまではできました。
しかしスケジュールには変更がつきものです。
日にちを修正して再度「矢印描画プログラム」を走らせると修正後の矢印は書いてくれますが、修正前の矢印は残ったままです(当然ですが)。これを消したいのです。
私としては、プログラムの最初に、まずシート上の図形(矢印)を全て消去して、それからあらためて日程に従って矢印を書き込んでいくというふうにしたいと思ってます。
こんなことってできますか??
よろしくお願いいたします。
No.5ベストアンサー
- 回答日時:
No.3の方とやり方はほとんど同じです。
AutoShapeTypeが-2の場合は直線(矢印を含む)
を削除します。
AutoShapeTypeで削除したい図形を特定できるの
ならばこちらが簡単だと思います。
Private Sub Button1_Click()
Dim s As Shape
For Each s In ActiveSheet.Shapes
If s.AutoShapeType = -2 Then
s.Delete
End If
Next
End Sub
ありがとうございます。
そうですね!わかりやすいですね!
これを使わせていただくことにしたいと思います。
ありがとうございました。
No.4
- 回答日時:
No.1です。
お待たせいたしました。Private Sub Button1_Click()
Dim n As Integer
Dim ZukeiNo As Integer
ZukeiNo = 1
For n = 1 To Shapes.Count
If Left(Shapes(ZukeiNo).Name, 6) = "Button" Then
' 6は"Button"の文字数です "Button"はボタン名と同じにして下さい
ZukeiNo = ZukeiNo + 1
Else
Shapes(ZukeiNo).Delete
End If
Next
End Sub
No.3
- 回答日時:
こんにちは。
aaaは、セルを選択した範囲のシェイプを削除します。
シェイプを選択した時に出る四角形の左上が、選択した
セル内である場合削除します。
Sub aaa()
Dim sh As Shape, r As Range
If TypeName(Selection) <> "Range" Then Exit Sub
For Each sh In ActiveSheet.Shapes
Set r = Application. _
Intersect(Selection, sh.TopLeftCell)
If Not r Is Nothing Then sh.Delete
Next sh
End Sub
bbbはオートシェイプを削除します。
更に矢印だけとかの場合は、AutoShapeType を調べて
判断します。(コメントアウト部分を生かすとオート
シェイプの左向き矢印を削除します)
Arrowだけでも一杯あるので、どのArrowか自分で調べ
てください。
Sub bbb()
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
If sh.Type = msoAutoShape Then
'If sh.AutoShapeType = msoShapeLeftArrow Then
sh.Delete
'End If
End If
Next sh
End Sub
ありがとうございます。
う~ん…高度ですねぇ(少なくとも私にとっては)。
もっと勉強しなければいけませんね。
参考にさせていただきます。
ありがとうございました。
No.2
- 回答日時:
はじめまして。
マクロの自動記録機能を使ってみてはどうでしょうか。操作手順は次のようにします。
1作業をするブックを開き、メニューバーのツール→マクロ→新しいマクロの記録と選択する。
2.マクロの記録というダイアログボックスが表示されるので、そのままOKボタンをクリックする。
3.あなた様のやりたいことを手操作で実行する。
4.作業が終了したら記録と書いてあるダイアログボックスの■ボタンをクリックし、ダイアログボックスを閉じる。
VBE画面を開くとモジュールシートが新規に作成されていますので、その中にあなたがされた作業をするためのコードが書かれています。
もし、モジュールシートが追加されていないときは、標準モジュールシートのどれかにコードが書かれていると思います。
何か解らないことがありましたら、お知らせ下さい。
この回答への補足
ありがとうございます。自動記録機能については最初にやってみました。
矢印がいっぱい引いてあるシート上で、ある範囲を選択しDeleteキーを押しました。
コードは次のとおりでした。
Sub Macro1()
ActiveSheet.Shapes.Range(Array("Line 3", "Line 4")).Select
Selection.Delete
End Sub
これを、作成中のマクロの先頭にそのまま入れても、
実行時エラー'1004':
指定した名前のアイテムが見つかりませんでした。
というメッセージが出て動きませんでした。
対処方法がよくわからなかったので、もっと手っ取り早い方法(範囲指定などせずイッキに消す方法)があるのではないかと思い、投稿した次第です。
No.1
- 回答日時:
宜しければ、下記をお試しください。
Sub ZukeiClear()
Worksheets(1).Shapes.SelectAll
Selection.Delete
End Sub
この回答への補足
ありがとうございます。試してみました。できました!
でも…すみません…全部消すとマクロボタンまで消えてしまうのですね…
ボタンだけ残すことはできませんか?
ある指定の行の中にある図形(矢印)だけを消すなんてことできませんか?
最悪は、ボタンを使わずに、メニューバーからいちいちコマンドを選んで実行するようにすればいいのですが…できればボタンでやりたいのです。
申し訳ありませんがよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Word(ワード) WORD2007で矢印が変わる 1 2022/10/02 09:02
- PowerPoint(パワーポイント) パワーポイント。2つの矢印のワイプ&消滅の順番に実施、これの繰り返し 2 2023/07/25 09:13
- 物理学 鉛直上向きを正とした図での重力の表記 4 2023/07/31 23:41
- PowerPoint(パワーポイント) パワポ 矢印について 3 2022/08/06 20:16
- 地図・道路 高速道路の80キロ速度標識の間の区間、走行可能速度は80キロ?100キロ? 1 2022/10/04 21:39
- 物理学 緑矢印の過程が分かりません。 コツとか図を見せてくださると非常に助かります。 赤矢印の変形はブリッジ 3 2023/05/01 23:07
- 物理学 この写真の図の全部の矢印を見ると上向きの矢印が2つ下向きの矢印が3つと上向きと下向きの矢印の数が一致 2 2022/08/12 15:48
- Windows 10 フォルダ内の全ての画像を矢印キーでスライドできるようにしたい 1 2022/10/21 12:53
- 数学 高校1年の数学です! この青い矢印の部分が分かりません! ③など余計なことが書いてありますが、 この 6 2022/08/05 20:14
- 物理学 電磁気学の問題について 1 2022/06/06 17:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別シートのマクロを実行する方法
-
Application.Runエラー(1004)
-
Access終了時にマクロまたはVBA...
-
エクセルのマクロボタンが編集...
-
シート保護を掛けたまま並べ替...
-
エクセルのマクロ
-
ACCESS2000の終了時に自動で実行
-
マクロとモジュールの違いを教...
-
ExcelのVBAでDisplayalertsで警...
-
今日の日付の範囲を指定して印...
-
特定のシートだけ印刷はマクロ...
-
エクセル VBA SendKeys ループ...
-
アクセス:検索フォームボタンに...
-
Exel 2003 にて「今日」を条件...
-
アクセスでauto_openは使えない?
-
「Access」のフォームを...
-
Excel2003でシート保護(オート...
-
三四郎、列の再表示の方法教え...
-
Excel2010のステータスバーを消...
-
エクセル ルーチンマクロ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのマクロボタンが編集...
-
別シートのマクロを実行する方法
-
Access終了時にマクロまたはVBA...
-
Application.Runエラー(1004)
-
シート保護を掛けたまま並べ替...
-
エクセルVBAで、ボタンの文字を...
-
access2010 コマンドまたはアク...
-
マクロ 戻るボタンを押したらシ...
-
InputBox内の表示について
-
特定のシートだけ印刷はマクロ...
-
ExcelのVBAでDisplayalertsで警...
-
マクロが登録できません
-
エクセル VBA SendKeys ループ...
-
今日の日付の範囲を指定して印...
-
AccessでExcelファイルを印刷
-
プロシージャが大きすぎます!
-
エクセルのマクロ
-
Workbook_Openを起動時以外に呼...
-
アクセス:検索フォームボタンに...
-
特定マクロが実行されたか確認...
おすすめ情報