
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
> もし、そうだとしたら上記のVBAをどのように分ければよいでしょうか?
ActiveCell.Activate
MsgBox "表示を終了してよろしいですか", vbOKOnly + vbInformation, "表示"
この2行を消して
.Shapes.Range(sh).Line.Visible = msoFalse
を別の Sub にするだけだと思います。
> Shape38,39,40になると、また「インデックスが境界を超えています」と出ました・・・
こちらの環境(Excel2000)ではShapes200でも動作します。
オートシェイプのインデックスはオートフィルタの▼や入力規則リストの▼でも増えるのですが、実際にインデックスが超えていなければエラーは出ませんでした。
実際のファイルやシートの状態を見えれば良いのですが、、、
やりたい事が今ひとつ掴めないのですが、もっと違うアプローチで同様の事が実現出来ないか模索した方が良いかも知れません。
No.2
- 回答日時:
Test1を実行するとどんな数字が表示されますか?
これが16未満なら ActiveSheet.Shapes(16).Select は「インデックスが境界を超えています」って事です。
Sub Test1()
MsgBox ActiveSheet.Shapes.Count
End Sub
下記は参考に
Sub Test2()
Dim sh(), s As String
With ActiveSheet
s = .Range("C117").Text
Select Case s
Case "A"
sh = Array(.Shapes(14).Name, .Shapes(15).Name)
Case "B"
sh = Array(.Shapes(2).Name, .Shapes(3).Name, .Shapes(4).Name)
Case "D"
sh = Array(.Shapes(8).Name, .Shapes(9).Name, .Shapes(10).Name)
Case Else
MsgBox "指定した地点 " & s & " はありません", _
vbOKOnly + vbExclamation, "指定範囲外"
Exit Sub
End Select
.Shapes.Range(sh).Line.ForeColor.SchemeColor = 10
.Shapes.Range(sh).Line.Visible = msoTrue
ActiveCell.Activate
MsgBox "表示を終了してよろしいですか", vbOKOnly + vbInformation, "表示"
.Shapes.Range(sh).Line.Visible = msoFalse
End With
End Sub
この回答への補足
ありがとうございます。
test1を実行すると「25」と表示されます。
test2は私が組んでいるものを違う形で表示してくれたのですね。
かなり感動しています。
本当にありがとうございます。
あつかましいようですが、もうひとつお聞きしたいのですが・・・
マクロを実行した際に今のないようですとメッセージボックスに
「表示を終了してもよろしいですか?」と言う表示が出て、シートを動かす(上下や左右)ことが
できなくなりますが、それを動かせるようにすることはかのですか?
このShapeを表示させるVBAと終了させるVBAを
別々に組み、それぞれのVBAが実行できるようなボタンを作るほうが賢明なのでしょうか?
もし、そうだとしたら上記のVBAをどのように分ければよいでしょうか?
No.1
- 回答日時:
本当に上限の問題でしょうか?
該当部分のソースコードを載せた方がアドバイスが得られやすいと思いますよ。
例えば、シートにオートシェイプを1~2個おいて下記を実行すると同じエラーが出ます。
Sub Test()
cnt = ActiveSheet.Shapes.Count
MsgBox "シェイプが " & cnt & "個しかないのに" & vbCrLf & _
cnt + 1 & "個目を選択しようとしてるとか、、"
ActiveSheet.Shapes(cnt + 1).Select
End Sub
この回答への補足
返答が遅くなってしまい、スミマセン。
現在、下記のようなVBAを組んでいてエラーがでます。
Sub iro()
Dim i As String
i = Range("c117").Value
If i = "A" Then
ActiveSheet.Shapes(16).Select
ActiveSheet.Shapes(15).Select
ActiveSheet.Shapes(14).Select Replace:=False
hyoji
MsgBox "表示を終了してよろしいですか", vbOKOnly
ActiveSheet.Shapes(16).Select
ActiveSheet.Shapes(15).Select
ActiveSheet.Shapes(14).Select Replace:=False
modosu
ElseIf i = ”B" Then
ActiveSheet.Shapes(2).Select
ActiveSheet.Shapes(3).Select Replace:=False
ActiveSheet.Shapes(4).Select Replace:=False
hyoji
MsgBox "表示を終了してよろしいですか", vbOKOnly
ActiveSheet.Shapes(2).Select
ActiveSheet.Shapes(3).Select Replace:=False
ActiveSheet.Shapes(4).Select Replace:=False
modosu
ElseIf i = "D" Then
ActiveSheet.Shapes(8).Select
ActiveSheet.Shapes(9).Select Replace:=False
ActiveSheet.Shapes(10).Select Replace:=False
hyoji
MsgBox "表示を終了してよろしいですか", vbOKOnly
ActiveSheet.Shapes(8).Select
ActiveSheet.Shapes(9).Select Replace:=False
ActiveSheet.Shapes(10).Select Replace:=False
modosu
Else
MsgBox "指定した地点がありません", vbOKOnly
End If
End Sub
Sub hyoji()
Selection.ShapeRange.Line.Visible = msoTrue
'「線なし」に設定されている場合、線を表示
Selection.ShapeRange.Line.ForeColor.SchemeColor = 10
Range("A1").Select
End Sub
Sub modosu()
Selection.ShapeRange.Line.Visible = msoFalse
'「線なし」に設定
Range("A1").Select
End Sub
いかがでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでPowerPointからExcelにレイアウト通りに出力する 4 2023/07/05 12:22
- Visual Basic(VBA) ExcelのVBAで教えてください。 Vlookupで、X X.value = applicatio 1 2022/12/26 13:40
- CAD・DTP Autocad Scriptファイルからの入力とコマンドラインからの入力が違う 1 2023/08/01 09:13
- Excel(エクセル) Excel VBAでのセルやシェイプの色指定について。 たとえば、”red”という文字列を用いて … 4 2022/11/15 09:44
- Excel(エクセル) Excelヘルプの原文を表示する最速の方法(手順)には? 1 2023/08/11 11:30
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Excel(エクセル) Excel VBAで、行の高さを、上下1文字分程度高くしたい 3 2023/04/23 00:17
- Visual Basic(VBA) Vba テキストボックスの文字列をボタンで入力するとテキストボックスの端の文字列が更新されない 2 2022/05/21 23:32
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
モテ期を経験した方いらっしゃいますか?
一生に一度はモテ期があるといいますが、みなさんどうですか? いまがそう! という方も、「思い返せばこの頃だったなぁ」という方も、よかったら教えて下さい。
-
テレビやラジオに出たことがある人、いますか?
テレビやラジオに取材されたり、ゲスト出演したことある方いますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
オートシェイプの削除時のエラー回避法
Visual Basic(VBA)
-
-
4
エクセルvbaでの図形のカット(コピー)ペーストについて
Excel(エクセル)
-
5
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
6
エクセル/自動記録VBAが、なぜ実行時エラー?
Excel(エクセル)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
ExcelVBA 図形をクリックした際のイベントを拾うには
Visual Basic(VBA)
-
9
ExcelVBAにて既に開かれているPowerpointをアクティブにするには?
Excel(エクセル)
-
10
excel vba/セルの値がOKになったら図形を消す
Visual Basic(VBA)
-
11
図形挿入VBA
Visual Basic(VBA)
-
12
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
13
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
14
エクセルでオブジェクトを常に表記する
Excel(エクセル)
-
15
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
16
マクロを実行すると画像がズレてしまいます
その他(Microsoft Office)
-
17
エクセルマクロでシート内にある画像のみを選択する
Excel(エクセル)
-
18
VBA Shapes コピーと名前
Excel(エクセル)
-
19
VBAについて
Visual Basic(VBA)
-
20
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel で行を指定回数だけコピ...
-
excelの差込印刷で可視セルだけ...
-
VBA 貼付先範囲(行)がいっぱ...
-
Excelマクロで空白セルを詰めて...
-
実行時エラー'424' オブジェク...
-
エクセルVBAで SendKeys "{TAB}"
-
vbaでコントロールブレイク
-
エクセルVBAで 2種のリストを...
-
Excelマクロ データが上書きさ...
-
エクセルVBAで実行時エラー...
-
VBA:同じ文字列データの比...
-
EXCELマクロで全シート対...
-
VBA 最終行取得からの繰り返し貼付
-
VBAで複数シート選択
-
VBA別シートの最終行の下行へ貼...
-
Excel VBAでシート内全体に非表...
-
スマホ機種変更で旧機種のGoogl...
-
機種変更時にデータは見られる?
-
携帯メルアドからわかること。
-
拡張子「.HUF(.huf)」のファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelの差込印刷で可視セルだけ...
-
Excel で行を指定回数だけコピ...
-
Excel VBA インデックスの境...
-
VBA別シートの最終行の下行へ貼...
-
エクセルVBAで 2種のリストを...
-
エクセル:VBAで月変わりで、自...
-
VBA:同じ文字列データの比...
-
VBA 貼付先範囲(行)がいっぱ...
-
Excel VBAでシート内全体に非表...
-
エクセルVBA 別シートの複数の...
-
歯抜けの時間を埋めて行の挿入
-
Excelマクロで空白セルを詰めて...
-
VBA 最終行取得からの繰り返し貼付
-
Excelマクロ データが上書きさ...
-
EXCELマクロで全シート対...
-
エクセル シート保護後コメン...
-
エクセルVBAで SendKeys "{TAB}"
-
Excelでデータの抽出&別シート...
-
VBAで複数シート選択
-
エクセル2007で、マクロで、結...
おすすめ情報