vba初心者です。
教えていただけると助かります。
'ボタン2押す→L44~AU51斜線
Private Sub CommandButton2_Click()
ActiveSheet.Shapes.AddLine(Range("L44").Left, Range("L44").Top, Range("AU51").Left + Range("AU51").Width, Range("AU51").Top + Range("AU51").Height).Select
ActiveSheet.Shapes.AddLine(70.75, 546.5, 89.75, 546.5).Select
ActiveSheet.Shapes.AddLine(70.75, 557.5, 89.75, 557.5).Select
End Sub
'ダブルクリック
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim myRange As Range
Dim myTarget As Range
Dim sp As Shape
Dim sp2 As Shape
Set myRange = Union(Range("B16:B226"), Range("G21:G43"), Range("AV16:AY226"), Range("K36:K40"), _
Range("L92"), Range("O25:O204"), Range("R208:R209"), Range("T36:Z37"), _
Range("AK22:AQ29"), Range("V23:AA30"), Range("AM50:AQ57"), Range("AJ63:AL64"), _
Range("AQ98:AQ106"), Range("AT102"), Range("Y101:AE101"), Range("AB103:AF103"), _
Range("AD147:AJ147"), Range("AB149:AF149"), Range("U170:AB170"), Range("T191:Y191"), _
Range("AM192:AQ194"), Range("U197:AB197"), Range("W208"), Range("AB208:AB209"), Range("K36:K39"), _
Range("L92"), Range("Y108:AN108"), Range("AC104"), Range("Q105:AD105"), Range("AE106"))
If Intersect(Target, myRange) Is Nothing Then Exit Sub
Set myTarget = Target.Offset(0, 0)
Select Case myTarget.Address(0, 0)
Case "B18"
For Each sp In ActiveSheet.Shapes
If sp.Name = Target.Address Then
sp.Delete
Range("AV18:AY18") = ""
Range("AW18") = "-"
Range("AY18") = "-"
Exit Sub
・
・
・
・
・
End Select
Target.Offset(0, 0).Select
Cancel = True
End Sub
・・・・・欄は、同じ様なCase""~Exit Subが連なります
同じ様なんですが、微妙に違うため、
Case""がRangeの数ぶん続きます。
Excel2013では問題なく(問題はあるとは思いますが)、動きます。
Excel2010以前だとプロシージャが大きすぎます。と出て、
使用することが出来ません。
前のExcelでも使える様にしたいのですが、どうしたらいいでいいでしょうか。
アドバイスいただけると助かります。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
エラーが出る原因は、VBAの割当のメモリー(64k)を越えているからなのだと思いますが、もしかしたら、こういうものが一杯あるということでしょうか。
Case "B18"
For Each sp In ActiveSheet.Shapes
If sp.Name = Target.Address Then
sp.Delete
Range("AV18:AY18") = ""
Range("AW18") = "-"
Range("AY18") = "-"
Exit Sub
Next
アイデアを凝らし苦心して作られたとは思いますが、ちょっと無理っぽい内容のようにお見受けします。この場合は、サブルーチンにして、プロシージャを分散させたほうがよいと思います。
For Each sp In ActiveSheet.Shapes
>If sp.Name = Target.Address Then
>sp.Delete
Case "B18"
Call ShapeDelete1()
Case ...
'-------------------
Sub ShapeDelete1()
'実行するコード
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 指定の条件に応じたセルの場所に〇印(図形)を描く 2 2022/11/08 15:26
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VALORANTのロードが長いです
-
先日、PCを替えました。
-
パソコンが自分の思い通りにい...
-
アイパッド中古品の購入につい...
-
PC版のRUSTはPS4コントローラー...
-
ベンチマークについて(Cineben...
-
ベンチマーク アクアリウム
-
マイクロソフトアカウントについて
-
モニターにあるdisplayportのメ...
-
USB-Cで映像出力と給電が1本の...
-
nasneの音
-
先日、ある日本メーカーの中華...
-
ネット社会 今のネット社会にな...
-
パソコンの保証期間:教えて下さい
-
無料ソフトって危険ではないで...
-
PC電源の交換について教えてく...
-
パソコンの電源を入れた直後、...
-
通電しなくなったバッファロー...
-
既存の用紙に文字を入力し、印...
-
快活クラブのテレビの音量調節...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バフェットはなんでsp500は買っ...
-
この柑橘の名前はなんと言うの...
-
円でオルガンやsp500を持ってい...
-
エクセルで、最背面に移動と塗...
-
(UNIX)後ろのスペース出力について
-
ソニーvaio の一体型パソコンで...
-
PowerDVD12でBlu-rayが見れなく...
-
インストールが必要なソフトと...
-
アドクリーナーについてお伺い...
-
リカバリーディスクもないまま...
-
ノートパソコンのスピーカーか...
-
インストールが出来なくて困っ...
-
このソフトって消してもいいん...
-
Windows Updateが動作しません
-
Windows10で画像のスライドショ...
-
MMDのAVI出力に関して
-
agent.exe ってなんですか?
-
Windows11Proのパッケージ版のU...
-
MCIデバイスがありません
-
zoom pc版のインストールが出来...
おすすめ情報